编写fun函数,输入一个正整数n,计算1+1/2+1/3+1/4+……+1/n

img


括号内是需要编写的部分
输入一个正整数n,计算1+1/2+1/3+1/4+……+1/n


#include <stdio.h>

double fun(int n) {
    double sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += 1.0 / i;
    }
    return sum;
}

int main() {
    int n;
    printf("请输入一个正整数n:");
    scanf("%d", &n);
    printf("1+1/2+1/3+1/4+……+1/%d=%lf\n", n, fun(n));
    return 0;
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7662700
  • 你也可以参考下这篇文章:编写一个函数,当输入n为偶数时调用函数求1/2+1/4+...+1/n, 当为奇数时求1/1+1/3+...+1/n(利用指针函数)
  • 除此之外, 这篇博客: C语言练习题中的 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n, 当输入n为奇数时,调用函数 1/1+1/3+…+1/n(利用指针函数) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数 求1/1+1/3+…+1/n(要求利用函数指针编程)
    程序运行示例1如下:
    10
    Even=1.141666
    程序运行示例2如下:
    9
    Odd=1.787302

    #include <stdio.h>
    #include <stdlib.h>
    double oushu(int n);
    double jishu(int n);
    int main()
    {
    	int n;
    	double (*p)(int);
    	
    	scanf("%d",&n);
    	if(n%2==0){
    	
    		p=oushu;
    		double r=(*p)(n);
    		printf("Even=%lf\n",r);
    	}
    	else{
    		p=jishu;
    		double r=(*p)(n);
    		printf("Odd=%lf\n",r);
    }
    }
    double oushu(int n)
    {
    	double sum=0;
    	int i;
    	for(i=2;i<=n;i++){
    		if(i%2==0)
    			sum+=(double)1/i;
    	}
    	return sum;
    }
    double jishu(int n)
    {
    	double sum=0;
    	int i;
    	for(i=1;i<=n;i++){
    		if(i%2!=0)
    			sum+=(double)1/i;
    	}
    	return sum;
    }