问题
问答题
编写函数fun(),它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序]
#include <conio.h>
#include <stdio.h>
void fun(int *a, int *n)
main()
int aa[1000], n, k;
clrscr();
fun(aa,&n);
for(k=0; k<n; k++)
if(k+1)%10==0)
printf("%5d", aa[k]);
printf("\n");
else
printf("%5d", aa[i]);
答案
参考答案:
void fun(int *a, int *n)
{
int i, j=0;
for(i=A; i<=A000; i++)
if((i%G=0 ||i%AA==0)&&i%GG!=0)
a[j++]=i;
*n=j;
}
解析:
本题的关键是if条件语句及参数传递。本题的设计思路是:(1)利用循环遍历1到1000之内的整数;(2)利用if语句判断,把查找到的整数保存到形参数组a中;(3)把数组a中数组元素的个数赋值到形参指针n所指的内存。注意程序中if语句的判断条件,本题是找出能被7或11整除但不能同时被7和11整除的所有整数。能同时被7和11整除的数一定能被77整除,且不能被7整除的数不一定就是能被7或11整除的数。所以,可得出程序中的if语句。