解决C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:04:22
#include<stdio.h>
vode main()
{
int a;
int b;
int c;
scanf("%d",&b);
a=5/9*(b-32);
c=b/(8/9)+32;
printf("%d",a);
printf("%d",c);
}
为什么输出的a=0,b=32?
那个高手帮看看是咋回事.

a: a=5/9*(b-32); 从左到右执行,5/9因前后两者都是整型数,因此值为0,0再乘以任何东西都是0,如果改,可写成 5.0 试试。

c: 应该是同样的错误,

a=5/9*(b-32); a除以9得0,再乘以后面的还是0,因为你定义的是int a,
第二个语句不应该是b=32吧,写错了吧。

你定义的是整形变量int
改为char
a=5/9.0*(b-32)

每个数字前面加(double)进行强制类型转换

另外建议a,b,c换成double 型的
输出用%f

不可以除0啊

5/9=0,从左向右进行运算肯定会错。
改成5.0/9就行了