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

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.

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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