Я проходил Программирование на C: современный подход и пришел к заданиям и объявлениям с программой внизу, я скопировал ее слово в слово, и она не дала мне ожидаемого результата:

#include 

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, и у него нет никаких ошибок с программой, но все же это распечатывает. Любые решения, почему этот код не работает?

James Barr

Ответов: 2

Ответы (2)

Вы не инициализируете вес перед его использованием в выражении для volume. Это вызывает неопределенное поведение. И оказывается, что ваша формула volume неверна, вы должны написать

volume = height * length * width;

Думаю.

Включите предупреждения компилятора, и вы должны избежать такой глупой ошибки, не поймите неправильно, они часто встречаются при кодировании, и поэтому предупреждающие сообщения так полезны.

Формула была объем неверна.

Попробуйте вместо этого:

#include 

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

2022 WebDevInsider