《C语言程序设计》江宝钏主编-习题6-3-倒数数列!!!

AC代码:

/*《C语言程序设计》江宝钏主编-习题6-3-倒数数列
Description 
编写程序计算并输出
s=∑k=1n 1/k=1+1/2+1/3+............+1/n 的值。  //此处为∑k从1到n
要求定义并调用函数total(n)计算1+1/2+1/3+......+1/n
注意:此题的main函数如下所示:

int main(){
    int n;
    scanf("%d",&n);
    printf("%.3lf\n",total(n));
    return 0;
}
Input 
正整数n,表示前n项求和
Output 
s,表示前n项的和

Sample Input Copy 
2
Sample Output Copy 
1.500

HINT 
函数原型double total(int n)
1/2=0  1.0/2=0.5
*/

#include <stdio.h>
#include <math.h>
double total(int a);
int main(){
    int n;
    scanf("%d",&n);
    printf("%.3lf\n",total(n));
    return 0;
}
double total(int x){
    double i,sum;
    for(i=1;i<=x;i++){       //警告:此循环中i必须定义为double型,且必须定义在for循环之外,不能在里面定义(否则会出现编译出错),因为不管是float,还是double,都不能够精确的保存。
        sum+=1/i;            //因为该计算式中两个变量类型定义必须一致。故i也必须定义为double型。
    }
    return sum;
}

//标程:
#include <stdio.h>
double total(int n);
int main()
{
	int n;
	scanf("%d",&n);
	printf("%.3lf\n",total(n));
	return 0;
}
double total(int n)
{
	double i,sum;
	for (i=1;i<=n;i++)
	{
		sum+=1/i;
	}
	return sum;
}
发布了39 篇原创文章 · 获赞 7 · 访问量 3675

猜你喜欢

转载自blog.csdn.net/qq_45599068/article/details/104095492