为何这样可以输出 这样不可以输出
为什么这样可以输出 这样不可以输出?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代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。