我的程序为什么返回错误答案的任何解决方案?

时间:2016-01-01 13:06:23

标签: c

我正在阅读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中运行它并且程序没有任何错误但仍然打印出来。有关此代码无效的解决方案吗?

2 个答案:

答案 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;
}