Как мне заставить мои операторы if else работать в C? - PullRequest
0 голосов
/ 02 октября 2019

Все кажется правильным, но когда я запускаю это if else утверждение, оно всегда печатает вопрос и второе утверждение автоматически, не задавая вопроса?

printf("How much money do you have?: ");
scanf("&d", &money);

if (money >= 25)
{
printf("Here is your food\n");
}

else (money <= 8);
{
printf("you dont have enough\n");
}

return 0;
}

Ответы [ 3 ]

2 голосов
/ 02 октября 2019

Иначе не принимает аргумент.

Иначе просто означает все остальное, кроме if или любых else if условий, которые вы, возможно, включили.

Попробуйте использовать else if послезаявление if в том же формате, в котором у вас есть if:

else if(money <= 8){ 
    printf("You are poor my man");
}

Кроме того, стоит подумать, что произойдет, если у пользователя будет от 9 до 24 денег? Затем вы можете захотеть реализовать оператор else для охвата этого диапазона, как упомянуто выше, иначе просто обрабатывает все остальные случаи, которые не были обнаружены вашими if и else if.

1 голос
/ 02 октября 2019
  • Используйте else if, если необходимо использовать определенное условие
  • Произошла синтаксическая ошибка при приеме ввода с использованием метода scanf.

Обновленный код:

#include <stdio.h>

int main ()
{
  int money;
  printf ("How much money do you have?: ");
  scanf ("%d", &money);  

  if(money >= 25)
    {

      printf("Here is your food\n");
    }

  else if(money <= 8)
  {

    printf("you dont have enough\n");
  }

  return 0;
}
1 голос
/ 02 октября 2019

Смотрите внимательно. Вы указали неправильный спецификатор формата в своем первом утверждении Scanf. Вы использовали "&", это должно быть "% d". «&» используется для доступа к адресу, который здесь не требуется. измените это утверждение scanf("&d", &money); на scanf("%d", &money);

Другая причина, по которой это происходит, заключается в том, что вы не выполнили все условия. Что если кто-то введет 16 или 10.

Еще одна вещь, вы не должны добавлять какие-либо условия к другой части. Остальная часть предназначена для обработки каждого случая, кроме случая if (или elseif). Так что, даже если вы не добавите никаких условий в другую часть, это сработает. Вот исправленный кусок кода.

int main()
{
    int  money;
printf("How much money do you have?: ");
scanf("%d", &money);

if (money >= 25)
{
printf("Here is your food\n");
}

else
{
printf("you don't have enough\n");
}

return 0;
}
https://www.geeksforgeeks.org/decision-making-c-c-else-nested-else/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...