问答题 请编写函数countValue(),其功能是:求出1~1000之内能被7或11整除但不能同时被7或11整除的所有整数,将它们放在数组a中,并通过n返回这些数的个数。
主函数最后调用函数writeDAT()把计算结果输出到out.dat文件中。
注意:部分源程序已经给出。
请勿改动主函数main()和输出数据函数writeDAT()的内容。
#include<conio.h>
#include<stdio.h>
void countValue(int*a,int*n)


void writeDAT()

int aa[1000],n,k;
FILE *fp;
fp=fopen("out.dat","w");
countValue(aa,&n);
for(k=0;k<n; k++)
if((k+1)%10==0)
fprintf(fp,"%5d/n",aa[k]);
else
fprintf(fp,"%5d",aa[k]);
fprintf(fp,"/n");
fclose(fp);

main()

int aa[1000],n,k;
ceuntValue(aa,&n);
for(k=0; k<n;k++)
if((k+1)%10==0)
printf("%5d/n",aa[k]);
else
printf("%5d",aa[k]);
writeDAT();


【正确答案】void countValue(int *a,int *n)
int i;
*n=0; /*将指针n所指的内容清0*/
for(i=1;i<=1000;i++)/*循环遍历1~1000之间的数*/
if((i%7==0&&i%11)| (i%7&&i%11==0))
{ /*若当前数能被7或11整除但不能同时被7或1l整除的话术/
*a=i; /*将此数存入指针a所指处*/
*n=*n+1; /*将指针n所指的内容增1*/
a++; /*将指针a向后移动一位,以便存放下一个数*/
}
}
【答案解析】