why!
#include <stdio.h>#include<math.h>
int main()
{
printf("请输入华氏度:");
int i;
double g;
scanf_s("%d", &i);
g = (i - 32) * 5 / 9;
printf("转换为摄氏度是:%.2f", g);
return 0;
}
为什么输入45华氏度,输出是7.00摄氏度啊,兄弟们。
#include <stdio.h>
#include<math.h>
int main()
{
printf("请输入华氏度:");
int i;
double g;
scanf("%d", &i);
g = ((double)i - 32) * 5 / 9; //问题出现在这里,整数乘或除都会变整数的
printf("转换为摄氏度是:%.2f", g);
return 0;
} g = (i - 32) * 5 / 9
=(45 - 32) * 5 / 9
= 13*5/9
= 65/9 (因为除号两遍都是int类型,所以结果也是int类型)
= 7 (余数为2)
你想输出小数的话,有两种办法:
(1)输入i时,占位符不用%d,用%f,这样你输入45,在编译器里是45.0(浮点型)
(2) g = (i - 32) * 5 / 9.0;这样除号一边是浮点型,结果也是浮点型。 不行啊,兄弟
#include <stdio.h>
#include<math.h>
int main()
{
printf("请输入华氏度:");
int i;
double g;
scanf_s("%f", &i);
g = (i - 32) * 5 / 9;
printf("转换为摄氏度是:%.2f", g);
return 0;
}
答案是错的啊,兄弟 何艺铧 发表于 2021-12-10 21:22
不行啊,兄弟
#include
#include
兄弟呀,你不能用 int 定义i呀,你用int定义,用%f输入也没有呀,i还是一个int类型呀
你需要用float或是double定义 i 何艺铧 发表于 2021-12-10 21:22
不行啊,兄弟
#include
#include
你i定义为整型int,占位符不是只能用%d么,把9换成9.0就行 番杰 发表于 2021-12-10 21:49
兄弟呀,你不能用 int 定义i呀,你用int定义,用%f输入也没有呀,i还是一个int类型呀
你需要用float或 ...
ok,我的
页:
[1]