源程序如下: #include <math.h> #include <stdio.h> double fun(int n) { } main() { int n; double sum; printf("\n\nInput n: "); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); }按我上面说的完善这个程序
时间: 2023-12-10 12:38:25 浏览: 42
好的,根据你的需求,下面是完善后的程序:
```c
#include <math.h>
#include <stdio.h>
double fun(int n) {
double sum = 0.0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / i;
}
return sum;
}
int main() {
int n;
double sum;
printf("\n\nInput n: ");
scanf("%d", &n);
sum = fun(n);
printf("\n\nsum=%f\n\n", sum);
return 0;
}
```
这个程序的作用是计算 $1+1/2+1/3+\cdots+1/n$ 的和,并将结果输出。其中 `fun` 函数实现了这个求和的过程,`main` 函数则负责输入和输出。
相关问题
/*请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。 例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。注意:n的值要大于2但不大于1000。部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/ #include<stdio.h> #include<stdlib.h> #include<math.h> double fun(int n)
```c
double fun(int n)
{
int i, j, flag;
double sum = 0;
for (i = 3; i <= n; i++)
{
flag = 1;
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
sum += sqrt(i);
}
}
return sum;
}
```
编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整 除的所有自然数之和的平方根s,并作为函数值返回。 例如:n为1000时,函数值应为s=96.979379。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 请补充下列程序,使其输出正确结果。 #include <math.h> #include <stdio.h> #include <stdlib.h> double fun(int n) { double s = 0.0; int i; /**********Program**********/ /********** End **********/ } int main() { FILE *wf; system("CLS"); printf("s=%f\n", fun(1000)); wf=fopen("out.txt", "w"); fprintf(wf, "%f", fun(1000)); fclose(wf); }
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
double fun(int n) {
double s = 0.0;
int i;
for(i=1; i<n; i++) {
if(i%5==0 && i%11==0) {
s += i;
}
}
return sqrt(s);
}
int main() {
FILE *wf;
system("CLS");
printf("s=%f\n",fun(1000));
wf=fopen("out.txt","w");
fprintf(wf,"%f",fun(1000));
fclose(wf);
return 0;
}
输出结果为:
s=96.979379