已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函
已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT53.DAT中。
请勿改动主函数main()、读函数readDat()和写函数wiltedat()的内容。
试题程序:
include<stdio.h>
define MAX 200
int a[MAX],b[MAX],cnt=0;
void jsVal()
{
}
void readDat() {
{
int i;
FILE *fp;
fp=fopen("in53.dat","r");
for(i=0;i<MAX;i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf ("满足条件的数=%d\n", cnt);
for(i=0;i<cnt;i++)
printf("%d",b[i]);
printf("\n");
writeDat();
}
writeDat()
{
FILE *fp;
int i;
fp=foPen("out53.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp,"%d\n",b[i]);
fclose(fp);
}
void jsVal() { int i,j,flag; for (i=5; iMAX; i++) { for(j=i-5;ji;j++) { if(a[i]>a[j]) /*如果该4位数连续大于它以前的5个数*/ flag=l; /*则置flag为1*/ else flag=0; /*否则置flag为0*/ if (a[i]%2!=0) /*如果该四位数为奇数*/ flag=0; /*则置flag为0*/ if (flag==O) break; /*如果flag为0, 则退出循环*/ } if (flag==1) { b[cnt] =a[i]; /*把满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } } for (i=0; icnt-1; i++) /*将数组b中的数按从大到波折顺序排列*/ for ( j =i+l; j cnt; j ++) if(b[i]b[j] ) { flag=b[i]; b[i]=b[j]; b[j]=flag; } } 解析:本题考查的知识点如下:
(1)使用循环对数组的元素进行比较和排序。
(2)强行退出循环结构。
在本题中,数组b中的数据要满足的条件有两个。在这里,不再使用判断结构中条件的布尔运算,而采用一种新的方法——设置标志变量flag。当数据不满足某一条件时,如数据不是偶数,将flag设置为0:当flag等于0时,可直接退出本层循环结构,进入外层的循环中。否则,根据题意要求,将数据存入数组b中。对数组b中的数据排序,使用“选择排序法”。
齐次线性方程组{(5-a)x+2y+2z=02x+(6-a)y=02x+(4-a)z=0}有非零解 数学 2020-04-26 …
有若干人参加动手做兴趣小组和数字油画小组,若从数字油画组调5人到动手做小组,则动手做小组的人数是数 数学 2020-05-15 …
某校六年级分三组参加植树活动,甲组人数占总人数的8/27,如果从丙组调5人到甲组,三个组人数刚好相 数学 2020-05-16 …
七年级共有60人参加数学,英语兴趣小组(每人只能参加一个兴趣小组),从数学小组调5人到英语小组,样 数学 2020-06-10 …
有甲,乙两组学生,如果从甲组调5人到乙组,那么调动后甲组人数是乙组人数的1.5倍如果从乙组调5人到 数学 2020-06-15 …
如果a>b>c>0,且满足2b=1a+1c,则称a、b、c为一组调和数.现有一组调和数为x、5、3( 数学 2020-10-30 …
如果a大于b大于0,且满足2/b=1/a+1/c,那么a、b、c为一组调和数.现有一组调和数为x、5 数学 2020-10-30 …
python怎么调换一组数的顺序我有一组数D=[1,2,3,4,5,a,b,c]和index=5.想 数学 2020-11-01 …
有甲乙两个小组,甲组与乙组人数比是5:3,如果两个小组都调走14人.这时两个小组的比是2:1,原来两 数学 2020-12-12 …
合唱组的人数是舞蹈组的四分之三,如果从合唱组调5人到舞蹈组,这时合唱组的人数占舞蹈组人数的三分之二, 数学 2021-01-13 …