请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在 9所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数

admin2009-02-15  53

问题 请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在 9所指的数组中,通过n返回这些数的个数。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
   试题程序:
   #include <conio.h>
   #include <stdio.h>
   void fun(int *a,int *n)
   {
   }
   main(  )
   {
     int aa[1000],n,k;
     clrscr();
     fun(aa,an);
     for(k=0;k<n;k++)
       if((k+1)%10==0)   
       {
       printf("%5d",aa[k]);
       printf("\n");    /*—行写10个数*/
       }
     else
     printf("%5d",aa[k]);
}

选项

答案void fun(int*a,int *n) { int i.j=0; for(i=1;i<=1000;i++) /*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/ if((i%5==0||i%13==0)&&i%65!=0) a[j++]=i; *n=j; /*传回满足条件的数的个数*/ }

解析 注意本题题目是找出能被5或13整除但不能同时被5和13整除的所有整数。能同时被5和13整除的整数一定能被65整除,且不能被65整除的数不一定就是能被5或13整除的数。所以可得出程序中的if()。按运算优先级可知 (i%5==0||i%13==0),注意,两边必须要有小括号。
转载请注明原文地址:https://jikaoti.com/ti/PxkiFFFM
0

最新回复(0)