慕榆 发表于 2014-4-27 12:13:15

C语言上级求助

用 for 语句编程,求数列前 20 项之和:2/1,
3/2,5/3,8/5,13/8 ……
#include <stdio.h>
void main()
{
         double sum=0,x=0,t=0,a=1,b=2;
         inti;
         for (i=0;i<=2;i++)
         {
             x=b/a;
                  t=b;
                  b=a+b;
                  a=t;
                  sum=sum+x;
         }
         printf("%d\n",sum);
               
}为什么结果会是乱码?
如何改正???

牡丹花下死做鬼 发表于 2014-4-27 13:44:42

现在在外面没有编译器用记事本写的不知道有没有错误#include<stdio.h>

int main()
{
double s,fz,fm,t;
sum = 0.0;
fz = 2.0;
t = 2.0;
fm = 1.0;
int i;
for(i = 0;i<20;i++)
{
    sum += fz/fm;
    fz = fz + t;
    t = fz;
    fm = fm + 1.0;
}
printf("%lf\n",sum);
return 0;
}

飞驰吧!少年 发表于 2014-4-27 17:40:57

sum你设置的是double型,应该用%f输出

风雪幻林 发表于 2014-4-27 19:57:24

sum定义的是double类型而你用printf("%d\n",sum)却是用的整形打印的!

慕榆 发表于 2014-4-27 22:25:23

牡丹花下死做鬼 发表于 2014-4-27 13:44 static/image/common/back.gif
现在在外面没有编译器用记事本写的不知道有没有错误

不行,有错误啊
页: [1]
查看完整版本: C语言上级求助