我正在阅读C编程:一种现代方法,并在底部使用程序来完成作业和声明,我一字一句地复制它并且它没有给我预期的输出:
#include <stdio.h>
int main(void) {
int height, length, width, volume, weight;
height = 8;
length = 12;
width = 10;
volume = height * weight * width;
weight = (volume + 165) / 166;
printf("Dimensions %d x %d x %d\n",length, width, height);
printf("Volume (cubic inches) : %d\n",volume);
printf("Dimensional weight (pounds) : %d\n", weight);
return 0;
}
我从该程序获得的输出是:
Dimensions 12 x 10 x 8
Volume (cubic inches) : 0
Dimensional weight (pounds) : 0
Program ended with exit code: 0
我在Xcode中运行它并且程序没有任何错误但仍然打印出来。有关此代码无效的解决方案吗?
答案 0 :(得分:7)
在weight
的表达式中使用{}之前,您不会初始化volume
。这会导致未定义的行为。您的卷公式似乎有误,您应该写
volume = height * length * width;
我想。
启用编译器警告,你应该避免这种愚蠢的错误,不要在编码时采用错误的方式,这就是警告信息如此有用的原因。
答案 1 :(得分:0)
公式volume不正确。
请改为尝试:
#include <stdio.h>
int main(void) {
int height = 8;
int length = 12;
int width = 10;
int volume = height * length * width;
int weight = (volume + 165) / 166;
printf("Dimensions %d x %d x %d\n", length, width, height);
printf("Volume (cubic inches) : %d\n", volume);
printf("Dimensional weight (pounds) : %d\n", weight);
return 0;
}