C 语言问题
改成:
#include
main()
{
int f,a,q;
printf("\t摄氏/华氏转换程序。\n\n");
printf("\t1)摄氏->华氏\t2)华氏-摄氏\n");
printf("请选择:");
scanf("%d",&f);
if(f==1)
{
printf("\t请输入摄氏温度:");
scanf("%d",&a);
q=9*a/5+32; //注意此处!
printf("\t转换结果:华氏温度为:%d",q);
}
else
{
if(f==2)
{
printf("\t请输入华氏温度");
scanf("%d",&a);
q=(a-...全部
改成:
#include
main()
{
int f,a,q;
printf("\t摄氏/华氏转换程序。\n\n");
printf("\t1)摄氏->华氏\t2)华氏-摄氏\n");
printf("请选择:");
scanf("%d",&f);
if(f==1)
{
printf("\t请输入摄氏温度:");
scanf("%d",&a);
q=9*a/5+32; //注意此处!
printf("\t转换结果:华氏温度为:%d",q);
}
else
{
if(f==2)
{
printf("\t请输入华氏温度");
scanf("%d",&a);
q=(a-32)*5/9; //注意此处!
printf("\t转换结果:摄氏温度为:%d",q);
}
else
{
printf("输入错误");
}
}
}
原因如下:C语言中加减乘除及赋值等运算符在默认情况下都是转化为int型进行运算的。
所以你原来的9/5*a被算成9/5=1,1*a=a这样了,所以加出来的结果会是47。
另外,变量q应该采用float类型。输出语句处相应改为%f。收起