代码能运行但是运算结果出错
#include
int main()
{
int iCelsius, iFahrenheit;
printf("请输入华氏度:/n");
scanf_s("%d", &iFahrenheit);
iCelsius = 5 * (iFahrenheit - 32) / 9;
printf("温度是:");
printf("%d/n", &iCelsius);
return 0;
}
首先去除第9行iCelsius前的&,因为打印计算结果这里不需要取址,然后如果需要保留几位小数的精度,还可以把iCelsius改为浮点数类型,float或者double都可以,如果只需要整数结果,也可以不改数据类型。
修改如下:
#include<stdio.h>
int main()
{
int iCelsius;
int iFahrenheit;
printf("请输入华氏度:\n");
scanf("%d", &iFahrenheit);
iCelsius = 5 * (iFahrenheit - 32) / 9;
printf("温度是:");
printf("%d\n", iCelsius);
return 0;
}
这是因为在输出摄氏度值时使用了错误的语句,应该去掉取地址符号 &,正确代码如下:
#include<stdio.h>
int main()
{
int iCelsius, iFahrenheit;
printf("请输入华氏度:/n");
scanf_s("%d", &iFahrenheit);
iCelsius = 5 * (iFahrenheit - 32) / 9;
printf("温度是:");
printf("%d/n", iCelsius);
return 0;
}
该回答引用ChatGPT
首先,在输出语句中,使用了格式字符串“%d /n”,但是在输出语句中忘记删除斜线字符,因此格式字符串应该为“%d\n”。
其次,在输出语句中,没有输出变量iCelsius,而是输出了它的地址。
最后,在输入语句中,使用了scanf_s函数,这是C11标准中的函数,并不是所有C编译器都支持。因此,更好的选择是使用标准C语言中的scanf函数:
scanf("%d", &iFahrenheit);
修改代码如下:
#include<stdio.h>
int main()
{
int iCelsius, iFahrenheit;
printf("请输入华氏度:\n");
scanf("%d", &iFahrenheit);
iCelsius = 5 * (iFahrenheit - 32) / 9;
printf("温度是:\n");
printf("%d\n", iCelsius);
return 0;
}
第九行去掉iCelsius之前的&符号