Программа возвращает неправильные номера - PullRequest
0 голосов
/ 14 февраля 2019

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

Я попытался просто указать это какконстанта вместо scanf, и она все еще вызывает у меня проблемы

#include <stdio.h>

const int MIN_CONST = 7;

int ComputeMinutesLost(int userCigarettes) {
   int minLost;
   int MIN_CONST;

   minLost = userCigarettes * MIN_CONST;

   return minLost;
}
int main(void) {

   int userCigarettes;
   printf("How many cigarettes have you smoked?\n");
   scanf("%d", &userCigarettes);
   printf("You have lost %d minutes to cigarettes. ", ComputeMinutesLost);

   return 0;
}

Она должна просто сказать, сколько минут потеряно (сигарет раз 7), но она выдает на первый взгляд случайное число.

1 Ответ

0 голосов
/ 14 февраля 2019

Примечание. Код, который вы разместили, вероятно, должен был пометить вас как ошибки компиляции или предупреждения.Вы их включили?

Измените следующее:

 printf("You have lost %d minutes to cigarettes. ", ComputeMinutesLost);

На:

 printf("You have lost %d minutes to cigarettes. ", ComputeMinutesLost(userCigarettes));
                                                                       ^------------^  // forgot to include argument

Кстати, числовое значение, которое вы равны видеть - это целочисленное представление адреса функции ComputeMinutesLost.

Также (благодаря комментарию @ unimportant)

в следующем разделе кода: // читать комментарии...

const int MIN_CONST = 7;  // one of these...

int ComputeMinutesLost(int userCigarettes) {
   int minLost;
   int MIN_CONST;        // is not necessary, and masks the other
                         // remove one or the other
                         // (as is, this one invokes undefined behavior.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...