A-A+

请编写一个函数fun() 它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数

2022-08-05 23:38:48 问答库 阅读 173 次

问题详情

请编写一个函数fun(),它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传给m的值为50,则程序输出:
7 11 14 21 X 28 33 35 42 44 49
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio.h>
include<stdio.h>
define M 100
void fun(int m, int *a, int *n)
{
}
main()
{
int aa[M],n,k;
clrscr();
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 mint *aint *n){int ij=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; /*返回这些数的个数*/}
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; /*返回这些数的个数*/} 解析:本题要找出能被7或11整除的所有整数,注意数学中的“或”和C语言中的“或”的区别,但在此处,if条件语句中用了“||”运算符,若要找能同时被7和11整除的所有整数则在if()中应用“&&”运算符。

考点:内能,整数