Перейти к содержанию
СофтФорум - всё о компьютерах и не только

switch в DEV-C++


Рекомендуемые сообщения

Всегда пишет, что ответ на вопрос "WRONG SYMBOL!" (из default: printf("WRONG SYMBOL!\n"):doh:

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

int answer;

printf("5 + 5 = \n");

printf("1. 6\n");

printf("2. 7\n");

printf("3. 10\n");

printf("4. 9\n");

printf("Vvedite nomer otveta\n");

getchar();

answer = getchar();

switch(answer)

{

case 1:

printf("You're wrong\n");

break;

case 2:

printf("You're wring\n");

break;

case 3:

printf("Congratulation! You win!\n");

break;

case 4:

printf("You're wrong\n");

break;

default:

printf("WRONG SYMBOL!\n");

}

system("PAUSE");

return EXIT_SUCCESS;

}

Ссылка на комментарий
Поделиться на другие сайты

little_greg:

Число 3 и цифра 3 - это разные вещи. Цифра 3 - это символ, представление которого в машине совпадает с представлением числа 51. Поэтому нельзя сравнивать введенный символ с числом без корректировки кода. Если уж вводится символ, проще всего и сравнивать его с символами, то есть для правильной работы программы надо убрать первый getchar() и заменить case 1: на case '1': и так далее во всех case.

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

Такие ошибки не прошли бы без возражений компилятора в Паскале, но C и C++ предполагают, что программист знает, что делает, даже когда он прибавляет к сапогам всмятку яичные желтки.

P.S. Еще лучше программа станет, если дополнительно заменить #include <cstdlib> на

#include <conio.h> и answer = getchar(); на answer = getch();

Тогда после ввода цифры не надо будет нажимать Enter.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...