编写一个函数fun(),其功能是求出1到~之间(含m)能被7或11整除的所有整数,放在数组a中,然后通过n返回这些数的个数。例如,若传送给m的值为50,则程序输出:
7 11 14 21 22 28 33 35 42 44 49
#include<stdio.h>
#define M 100
void fun(int m,int *a,int *n)
main()
int aa[M],n,k;
void NONO();
fun(50,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==O)printf("\n");
else printf("%4d",aa[k]);
printf("\n");
NONO();
参考答案:
int i,j=0;*n=0;
for(i=A;i<=m;i++)
if(i%G==0||i%AA==0)
{
a[j]=i;
j++;
}
*n=j;
解析:
该题是求某范围内能被7或11整除的数。该程序的解题思路可以分解为以下几步:判断是否被7整除→判断或者是否被11整除→按要求返回计算结果。
进入fun()函数,根据前面的分析:
①数i能否被7或11整除,其逻辑表达式为“(i%7==0||i%11==0)”。
②其中满足被7或11整除的数的个数,可以用累加器j来计数。
[考点] 指针操作,for循环语句,数组操作。