活动设计题
编写函数fun,其功能是:将1-m(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出:
7 11 14 21 22 28 33 35 42 44 49
注意:部分源程序给出如下。
请勿改动主函数main和其他函数的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#define M 100
void fun(int m, int *a, int *n)
{
}
void main()
{
int aa[M],n,k;
system('CLS');
fun(50,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)
/*每行输出20个数*/
{printf('%4d',aa[k]);
printf('\n');
}
else
printf('%4d',aa[k]);
printf('\n');
}
【正确答案】void fun (int m, int *a , int *n) { int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) /*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/ a[j++]=i; *n=j; /*返回这些数的个数*/ }
【答案解析】本题应使用循环判断语句实现,首先要确定循环变量的取值范围,题且要求找到1~m之间附合要求的数,所以循环变量的取值范围为1~m。if条件语句用来对每一个数进行判断,注意题目要求能被7或11整除,因此条件表达式中应使用逻辑或'||'运算符。