问题如图:
然后我使用了一下两段相同的代码,只是对变量的数据类型定义不同:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
float celsius,fahr;
printf("celsius = ");
scanf("%f",&celsius);
fahr=(9/5.0)*celsius+32;
printf("fahr = %f",fahr);
return 0;
}
//结果:98.959999
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
double celsius,fahr;
printf("celsius = ");
scanf("%lf",&celsius);
fahr=(9/5.0)*celsius+32;
printf("fahr = %lf",fahr);
return 0;
}
//结果:98.960000
实在想不通到底是哪个运算过程改变了结果,也想问一下是这里出问题的点是哪里?
拜托了,初学者小白学生党提问。