【编程问题2】
遇见一道题目,内容如下:编写一个程序让用户按厘米输入一个高度值,然后,程序按照厘米和英尺英寸显示这个高度值。允许厘米和英寸的值出现小数部分。程序允许
用户继续输入,直到用户输入一个非正的数值。程序运行的示例如下所示:
Enter a height in centimeters: 182
182.0 cm = 5 feet, 11.7 inches
Enter a height in centimeters (<=0 to quit): 168
168.0 cm = 5 feet, 6.1 inches
Enter a height in entimeters (<=0 to quit): 0
bye
下面是我编写的程序:
程序代码:#include <stdio.h>
#define CM_2_IN 2.54
#define IN_2_FT 12
int main (void)
{
int ft, cm;
double in, lft;
printf ("Enter a height in centimeters: ");
scanf ("%d", &cm);
while (cm>0){
in = (double)cm/CM_2_IN;
ft = (int)in/IN_2_FT;
lft = (int)in%IN_2_FT;
printf ("%.1f cm = %d ft, %.1f inches\n", cm, ft, lft);
printf ("Enter a height in centimeters (<=0 to quit): ");
scanf ("%d", &cm);
}
printf ("bye\n");
return 0;
}得出的结果都是0,不知道为什么,是不是计算过程中得出的值太大了,%f已经无法显示了?
希望哪位好心人给解答一下,谢谢了~









