一个普通的C语言程序,我却找不到错误,但运行后的结果是错误的,请朋友给予指正;

此程序 求sum=1+1/(1+2)+1/(1+2+3)+ ....1/(1+2+3+....n)
main()
{
float f(int x);
int n,i;
float sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++);
{
sum=sum+1/f(i);
}
printf("sum=%f",sum);
}
float f(int x)
{
int i;
float p=0.0;
for(i=1;i<=x;i++)
{
p=p+i;
}
return(p);
}



第1个回答  2006-04-22
main()
{
float f(int x);
int n,i;
float sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++); /*似乎这里多了一个分号,多了分号后下面的
sum=sum+1/f(i)中的i的值为n+1,最终sum=sum+1/f
(n); */
{
sum=sum+1/f(i);
}
printf("sum=%f",sum);
}
float f(int x)
{
int i;
float p=0.0;
for(i=1;i<=x;i++)
{
p=p+i;
}
return(p);
}
第2个回答  2006-04-22
老兄,刚才那个程序我没发现还另有数据处理错误,我改了一下,运行正确:
float ch(int q)
{
int i;
float h=0.0;
for(i=1;i<=q;i++)
{
h=h+1;
}
return h;
}
main()
{
int i,n;
float sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+1/ch(i);
print ("%f",sum);
}

另外你这个程序这样:
main()
{
float f(int x);
int n,i;
float sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+1/f(i);
}
printf("sum=%f",sum);
}
float f(int x)
{
int i;
float p=0.0;
for(i=1;i<=x;i++)
{
p=p+1;
}
return(p);
}本回答被网友采纳
第3个回答  2006-04-25
()
{
float f(int x);
int n,i;
float sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++); /*似乎这里多了一个分号,多了分号后下面的
sum=sum+1/f(i)中的i的值为n+1,最终sum=sum+1/f
(n); */
{
sum=sum+1/f(i);
}
printf("sum=%f",sum);
}
float f(int x)
{
int i;
float p=0.0;
for(i=1;i<=x;i++)
{
p=p+i;
}
return(p);
}
kk

参考资料:jjjj

第4个回答  2006-04-22
for(i=1;i<=n;i++); //不知道有多少人犯这种错误,这里加了分号,那么大括号里面的处理就只能循环一次
{
sum=sum+1/f(i);
}
第5个回答  2006-04-22
呵呵,你的程序是对的,只是第7行for后多了一个分号.去掉就好了

一个普通的C语言程序,我却找不到错误,但运行后的结果是错误的,请朋友给...
int n,i;float sum=0.0;scanf("%d",&n);for(i=1;i<=n;i++); \/*似乎这里多了一个分号,多了分号后下面的 sum=sum+1\/f(i)中的i的值为n+1,最终sum=sum+1\/f (n); *\/ { sum=sum+1\/f(i);} printf("sum=%f",sum);} float f(int x){ int i;float p=0.0;for(i...

c语言一元二次方程求根公式代码不知哪里出错了,运行输入数字后程序中止...
注意一元二次方程中a不可能为零,个人认为不需要进行判别;

C语言程序设计,计算π的近似值
错误一:while(t-(4*n*n)\/(4*n*n-1))>=1e-6)里面少了一个左括号;错误二:主要你是float和int混合在一起计算,特别你到了t-(4*n*n)\/(4*n*n-1)和 t=(4*n*n)\/(4*n*n-1);这两步,相当有问题,结果并不是你想象那样是个带6位的小数,而是得到整数!第一次n=1时候;t-...

C语言程序错误illegal indirection
define SCALE_FACTOR (5.0 \/ 9.0f)这里用的是宏定义,在C语言里,宏采用的是一种类似替换的原则,比如你上面的程序,C语言实际执行的是:celsius=( fahrenheit - 《32.0f;》 )* SCALE_FACTOR;请注意《》内的内容,这里宏“傻瓜”似的把分号替换了过来,所以错误会显示在这里 ...

C语言题目解方程,我怎么错了,求指正
scanf("%lf%lf%lf",&a,&b,&c)!=EOF){ disc=b*b-4*a*c; p=-b\/(2.0*a); q=sqrt(disc)\/(2.0*a); x1=p+q;x2=p-q; printf("x1=%f\\nx2=%f\\n",x1,x2); } return 0;}

c语言问题,请给予指正
include<stdio.h> main(){ int a,b,c; printf("以下是求100到200间的所有素数\\n"); for(a=100;a<=200;a++){ for(b=2;b

执行linux定时脚本是报错 Segmentation fault,求高手指正!在线等...
可以打印出发生段错误的时候的脚本中传递给程序的参数值,然后另开终端以此参数值调用下程序看下。段错误,百分之99可能是在你自己写的程序(曾经我写程序也经常出现段错误,c语言很正常的)。重点查看传入参数导致程序路径或者变量地址的引用是否越界 ...

微控制器实验心得体会范文?
然后,就是以C语言编写外围器件的控制程式,以此来熟悉C的程式设计风格,一直到现在,基本上就是C语言程式设计,汇编已经是作为除错程式的辅助。 下面我概括了几点我的学习经验和心得体会: 1、万事开头难、要勇敢迈出第一步。 开始的时候,不要老是给自己找借口,说KEIL不会建专案啦、没有实验板啦之类的。 遇到...

我是C语言新手 刚开始学函数 程序出错 求大神指正(附代码)
method1和method2声明错了 void main(){ int r1,r2; int method1(int n); int method2(int n); r1=1; r2=1; printf("%d,%d",method1(r1),method2(r2));}

c语言程序编错了求指正~~ warning C4101: 'c' : unreferenced local...
warning C4101: 'c' : unreferenced local variable 这个错误并不会导致无法编译。只是一个警告: 你定义的C变量冗余,没有用到。

相似回答
大家正在搜