代码显示没有错误,但是运行的时候输入后回车没有输出,代码如下(c语言)

#include<stdio.h>
int main ()
{
int i,N;
float m,sum,x=1.0,y=2.0;
scanf("%f",&N);
for(i=1,sum=0;i<=N;i++)
{
sum=sum+y/x;
m=y;
y=x+y;
x=m;
}
printf("%.2f\n",sum);
return 0;
}
好心人顺便告诉下我,一般什么时候会出这种错误????

第1个回答  2013-11-02

这个是输入格式错误造成的,进行如下修改就可以了(见注释部分):

#include<stdio.h>
int main ()
{
    int i,N;
    float m,sum,x=1.0,y=2.0;
    scanf("%d",&N);//整数用%d 
    for(i=1,sum=0;i<=N;i++)
    {
    sum=sum+y/x;
    m=y;
    y=x+y;
    x=m;
    }
    printf("%.2f\n",sum);
    
    return 0;
}

本回答被网友采纳
第2个回答  2013-11-02
scanf("%f",&N); 这句改成scanf("%d",&N); N是int类型的 要用%d才可以 或者把N定义成float的
第3个回答  2013-11-02
scanf("%f",&N);不是和int i,N;矛盾的嘛,%f是浮点型的,怎么用整型定义。
第4个回答  2013-11-02
%f使用阶码表示,%d使用定点数表示。格式不一样,无法格式化输入。你把%f改成%d就好了本回答被提问者采纳
相似回答