请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。 注意:要求11的值不大于100。 部分源程序在文件PROG1.C中。 请勿改动主函

admin2021-04-28  41

问题 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。
注意:要求11的值不大于100。
    部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
double fun(int n)
{
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE *rf,*wf;int n, i;double s;
  rf= fopen("in.dat","r");
  wf=fopen("out.dat","w");
  for(i=0;i<10;i++){
    fscanf(rf,"%d",&n);
    s=fun(n);
    fprintf(wf,"%1f\n",s);
    }
    fclose(rf);fclose(wf);
  }
  main()
  {  int n; double s;
   printf("\nInput n:");scanf("%d",&n);
  s=fun(n);
  printf("\n\ns=%f\n",s);
  NONO();
}

选项

答案int i; double sum=0.0; for(i=1; i<=n; i++) if(i%5==0||i%9==0) /*被5或9整除*/ sum+=1.0/i; return sum;

解析 (1)首先,通过循环,判断小于等于n的每一个整数是否符合题干中的要求。其中的判断条件能否被5或者被9整除为i%5==0‖i%9==0。
    (2)然后求得符合(1)要求的数的倒数的累加和。
转载请注明原文地址:https://jikaoti.com/ti/anz0FFFM
0

最新回复(0)