首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为何这样可以输出 这样不可以输出

2014-01-01 
为什么这样可以输出 这样不可以输出?int a,b,c,derprintf(请依次输入一元二次方程的系数\n依次为二次项/

为什么这样可以输出 这样不可以输出?

    int a,b,c,der;
printf("请依次输入一元二次方程的系数\n依次为二次项/一次项/一次项:");
scanf("%d%d%d",&a,&b,&c);
    printf("%.2f,-b/(2*a));

这样输出 的结果 是0.00
但是我还写了另一个语句就可以输出
printf("方程只有一解%.2f",-c/b);
  
不知道为什么,而且这个也能输出
 printf("方程有两个解\n一解:%.2f\n二解:%.2f:",(-b+sqrt(der))/(2*a),(-b-sqrt(der))/(2*a));
 
[解决办法]
int型如果除法,小于1会直接变成0
[解决办法]
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

热点排行