求助:请问这个简单C语言程序错在哪?

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:47:48
/*-----------------------------------------
编程求出 1 + 1/2 + 1/3 + …… + 1/100的值。
----------------------------------------*/
#include<stdio.h>
#define N 100
float function(int a);
void main()
{
float sum;
sum=function(N);//调用函数
printf("sum=%f",sum);
getch();
}
float function(int a)//子函数完成功能
{
float t=1,s=0;
int i;
for(i=1;i<=a;i++)
{
t=1/i;
s=s+t;
}
return (s);
}

关键在
t=1/i;
这一句,右值除了1外,都被归为0,

可改为
t=1/(float)i;
//TC下可行。

是结果错误还是程序运行报错啊?
getch(); 这句是拿来干什么的?
float function(int a);
float function(int a) 改成float a
我觉得中心算法没有必要如何复杂.
double d = 0.0;
for(int i=1;i<=100;i++){
d += 1/i;
} 这样不是很简单吗?