已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数
已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数 jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat() 把结果cnt及数组b中符合条件的4位数输出到 OUT2.DAT文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200],b[200],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
#define MAX 200
int a[MAX], b[MAX], cnt = 0 ;
void writeDat();
void jsVal()
{
int i,j; /*定义循环控制变量*/
int temp; /*定义数据交换是的暂存变量*/
for(i=0;i
if(a[i]%2!=0) /*如果当前数是奇数*/
for(j=i+1;j<=i+5;j++) /*取该数后面的5个数进行比较*/
{
if(a[i]
break; /*如果当前数不满足比后面5个数都大的条件,则跳出循环*/
else if(j==i+5) /*如果当前数比后面的5个数都大*/
{
b[cnt]=a[i]; /*将满足条件的数存入数组b中*/
cnt++; /*并统计满足条件的数的个数*/
}
}
for(i=0;i
for(j=i+1;j
if(b[i]>b[j])
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
void readDat()
{
int i ;
FILE *fp;
fp = fopen("IN2.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() ;
}
void writeDat()
{
FILE *fp;
int i ;
fp = fopen("OUT2.DAT", "w") ;
fprintf(fp, "%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
fclose(fp) ;
}
第一个:输入一个小于10000的正整数,输出该证书各位上的数字各是多少;编程题,第2个 用getc 其他 2020-05-17 …
请编制程序,要求:将文件IN91.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cn 计算机类考试 2020-05-23 …
请编制程序,要求:将文件IN92.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及 计算机类考试 2020-05-23 …
三堆一样多的棋子(每堆不少于5个)从A中拿出5个C中拿出2个都放入B从B中拿出A中剩下的个数放入A 数学 2020-06-25 …
1)单击"读数据"按钮,则把考生文件夹下in5.dat文件中的100个正整数读入数组a中,同时显示 其他 2020-06-29 …
入,u为实数,若入a=ub,则a与b共线()正确的还是错误的? 数学 2020-07-13 …
java的一道题目,求解答。求出1-100之间的素数,假设有n个,将这些素数存入a[n+1]的数组 其他 2020-07-17 …
解题思路单击"读数据"按钮,运用文件操作把考生文件夹下in5.dat文件中的100个正整数读入数组a 其他 2020-11-20 …
2.已知两个整数变量A和B,试编写完成下述操作的程序1)若两个数中有一个奇数,则将奇数存入A中,偶数 其他 2020-11-28 …
C++:写一个加密程序,它通过cin从输入流中读入一段明文,通过cout将密文写到输出流。采用下面的 其他 2020-12-02 …