因此,我在以下程序上遇到了一些问题:
#include <stdio.h>
int main()
{
int centimeters, feet, inches;
printf("Please enter an amount in centimeters\n");
scanf("%i", ¢imeters);
getchar();
inches = (centimeters/2.54);
feet = inches % 12;
printf("\n%i", &feet);
return 0;
}
无论我输入多少数字,程序都认为答案是2358852。我知道24厘米不超过200万英尺。如果重要的话,我正在使用Dev C ++进行编译。
最佳答案
这是错的
printf("\n%i", &feet);
它应该是
printf("\n%i", feet);
/* ^ no & here */
printf("\n%i", &feet);
打印address of feet
,而不是它的值。您的程序还假定
scanf()
ed值已成功读取,您必须检查scanf()
的返回值以确保成功#include <stdio.h>
int main()
{
int centimeters, feet, inches;
printf("Please enter an amount in centimeters\n");
if (scanf("%i", ¢imeters) == 1)
{
getchar();
inches = centimeters / 2.54;
feet = inches % 12;
printf("\n%i", feet);
}
return 0;
}
另外,显然公式是错误的,如另一个答案中所述,请检查一下。