59、请编写函数void countvalue(int *a, int *n),它的功能是:求出1到1000之内能
被7或11整除但不能同时被7和11整除的所有整数放在数组a中,并通过n返回这些数的个
数。
#include<conio.h>
#include<stdio.h>

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;
}

返回南开百题目录

www.163164.cn 联系QQ:3149886