【编程问题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已经无法显示了?
希望哪位好心人给解答一下,谢谢了~