59、请编写函数void countvalue(int *a, int *n),它的功能是:求出1到1000之内能
void countValue(int *a,int *n)
{
}
main()
{
int aa[1000],n,k;
clrscr();
countValue(aa,&n);
for(k=0;k<n;k++)
if((k+1)%10==0) printf("\n");
else printf("%5d",aa[k]);
writeDAT();
}
writeDAT()
{
int aa[1000],n,k;
FILE *fp;
fp=fopen("out19.dat","w");
countValue(aa,&n);
for (k=0;k<n;k++)
if((k+1)%10==0) fprintf(fp,"\n");
else fprintf(fp,"%5d",aa[k]);
fclose(fp);
}
/* 注:由于7和11的最小公倍数为77故而可用i%77!=0来表示不能同时被7和11整除。在
a[(*n)++]=i,中必须有小括号,这是由于*与++的运算优先级别相同,而它们的结合方
向是自右向左,如不用括号则变成n所指的地址向前移一位,但本题要的是n所指的变量
的值增加1。*/
void countValue(int *a,int *n)
{
int i;
*n=0;
for(i=7;i<1000;i++)
if((i%7==0||i%11==0)&&i%77!=0)
a[(*n)++]=i;
}