Программа тестирования - реализовать правильные/неправильные ответы - C (СИ)
Формулировка задачи:
Пишу приложение, в котором нужно вводить ответ с клавиатуры. Так вот, как мне реализовать правильные/неправильные ответы. Допустим, вводишь 0 и должна появиться надпись верно. Остальные варианты - неверно.
Решение задачи: «Программа тестирования - реализовать правильные/неправильные ответы»
textual
Листинг программы
#include <stdio.h>
#include <locale.h>
int answer,i;
char question1[256]="Верно ли, что у человека 4-х камерное сердце?";
char question2[256]="В году 367 дней?";
char question3[256]="Фамилия Пушкина - Пушкин?";
char question4[256]="Умеют ли собаки плавать?";
char question5[256]="Мягкие игрушки мягкие?";
int main(int agrc,char *argv[]){
setlocale(0,"");
for (i=1;i<=5;i++){
if (i==1){
printf("%s\n",question1);
printf("Ответ: "); scanf("%d",&answer);
if (answer!=1){
printf("\nУвы, это неправильный ответ!\n");
break;
}else
printf("\nЭто правильный ответ!\n\n");
}else if (i==2){
printf("%s\n",question2);
printf("Ответ: "); scanf("%d",&answer);
if (answer!=0){
printf("\nУвы, это неправильный ответ!\n\n");
break;
}else
printf("\nЭто правильный ответ!\n\n");
}else if (i==3){
printf("%s\n",question3);
printf("Ответ: "); scanf("%d",&answer);
if (answer!=1){
printf("\nУвы, это неправильный ответ!\n\n");
break;
}else
printf("\nЭто правильный ответ!\n\n");
}else if (i==4){
printf("%s\n",question4);
printf("Ответ: "); scanf("%d",&answer);
if (answer!=1){
printf("\nУвы, это неправильный ответ!\n\n");
break;
}else
printf("\nЭто правильный ответ!\n\n");
}else if (i==5){
printf("%s\n",question5);
printf("Ответ: "); scanf("%d",&answer);
if (answer!=1){
printf("\nУвы, это неправильный ответ!\n\n");
break;
}else
printf("\nЭто правильный ответ!\n\n");
}
}
printf("Поздравляем, вы прошли тест!");
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные:
- answer (переменная для хранения ответа пользователя)
- i (переменная для управления циклом)
- question1, question2, question3, question4, question5 (массивы строк с вопросами)
- В функции main() происходит следующее:
- Установка локали на русскую с помощью setlocale(0,``)
- Запуск цикла for для обработки каждого вопроса
- Внутри цикла выводится вопрос с помощью printf()
- Затем пользователю предлагается ввести ответ с помощью scanf()
- Если ответ не равен ожидаемому, выводится сообщение об ошибке
- Если ответ правильный, выводится сообщение о правильном ответе
- После обработки всех вопросов выводится сообщение о прохождении теста
- Возвращается 0, что означает успешное завершение программы
- При вводе неправильного ответа на любой из вопросов, программа выведет сообщение
Увы, это неправильный ответ!.- Это происходит потому что в условии if (answer!=1) проверяется, не равен ли ответ 1 (ожидаемому значению). Если это так, выводится сообщение об ошибке.
- При вводе правильного ответа на любой из вопросов, программа выведет сообщение
Это правильный ответ!.- Это происходит потому что в условии if (answer==1) проверяется, равен ли ответ 1 (ожидаемому значению). Если это так, выводится сообщение о правильном ответе.