C语言中int整型时会使计算机中小数点后面的值不可取,从而使得计算出来的值发生误差。以下是出现误差使得小数点后面的值不可读取。
#include<stdio.h>
int main()
{
printf("请输入身高的英尺英寸:");
int foot;
int inch;
scanf_s("%d %d", &foot, &inch);
printf("身高是%f米。\n",
(foot + inch / 12) * 0.3048);
return 0;
}
这就导致inch计算之后被计算机自动舍掉,导致计算时只有foot改变才对结果有影响。
以下是改动:
#include<stdio.h>
int main()
{
printf("请输入身高的英尺英寸:");
int foot;
int inch;
scanf_s("%d %d", &foot, &inch);
printf("身高是%f米。\n",
(foot + inch / 12.0) * 0.3048);
return 0;
}
把 12 改为 12.0 可以使inch也进入对结果的影响。
#include<stdio.h>
int main()
{
printf("请输入身高的英尺英寸:");
float foot;
float inch;
scanf_s("%f %f", &foot, &inch);
printf("身高是%f米。\n",
(foot + inch / 12) * 0.3048);
return 0;
}
或者将int改为float,再把输入的%d改为%f。