Написать программу тестирования по истории с отображение вопросов и трех правильных ответов - C (СИ)
Формулировка задачи:
Здравствуйте!
Требуется написать программ тестирования по истории с отображение вопросов и трех правильных ответов. В конце должен выводиться общий результат и в зависимости от результата оценка. У меня все получилось кроме подсчета результата. Не знаю как сделать так чтобы после выбора ответа прога записывала 1-если правильно 0-если не правильно. Ниже привожу код, в котором работает все, кроме результата:
#include <stdio.h> #include <conio.h> #include <math.h> int main(void) { char ch, A, B, C; int a, b, c, d, e, total; printf(" Zdravstvuite!\n Dobro pozhalovat' v programmu testirovaniya po ISTORII KAZAKHSTANA!\n"); printf(" Vyberite pravel'nyj otvet ( A, B ili C)\n"); printf(" 1. Data prinyatiya nezavisimosti Kazakhstana:\n A. 16.12.1990 B. 01.12.1991 C. 16.12.1991\n"); ch = getchar(); printf ("Otvet: %c\n", ch); { if(ch=='C' || ch=='c') printf("Otvet vernyj!\n"); //a==1; else printf("Izvinite, Vy dopustili oshibku :(\n"); //a==0; } printf("2. Kak nazyvaetsya verhovnyj pravitel' uisunej:\n A. Gun'mo B. Shakh C. Kagan\n"); ch = getchar(); printf ("Otvet: %c\n", ch); { if(ch=='A' || ch=='a') printf("Otvet vernyj!\n"); //b==1; else printf("Izvinite, Vy dopustili oshibku :(\n"); //b==0; } printf("3. Alexandr Makedonskiy voeval s sakami v:\n A. v 5 veke d.n.e B. 4 veke d.n.e C. v 7 veke d.n.e\n"); ch = getchar(); printf ("Otvet: %c\n", ch); { if(ch=='B' || ch=='b') printf("Otvet vernyj!\n"); //c==1; else printf("Izvinite, Vy dopustili oshibku :(\n"); //c==0; } printf("4. Kogo iz persidskih zarei pobedili saki:\n A. Kserksa B. Dariya C. Kira\n"); ch = getchar(); printf ("Otvet: %c\n", ch); { if(ch=='C' || ch=='c') printf("Otvet vernyj!\n"); //d==1; else printf("Izvinite, Vy dopustili oshibku :(\n"); //d==0; } printf("5. Pervyj prezident Respubliki Kazakhstan:\n A. Navarbaev B. Kunaev C. Andropov\n"); ch = getchar(); printf ("Otvet: %c\n", ch); { if(ch=='A' || ch=='a') printf("Otvet vernyj!\n"); //e==1; else printf("Izvinite, Vy dopustili oshibku :(\n"); //e==0; } total=(a+b+c+d+e)/5*100; printf("Vash resul'tat: %d ballov", total); { if(total >= 90) printf("Vasha ocenka A (5)\n"); if(75 <= total && total <= 89) printf("Vasha ocenka B (4)\n"); if(50 <= total && total <= 74) printf("Vasha ocenka C (3)\n"); if(total <= 49) printf("Vy ne sdali test! U vas peresdacha! Vy mozhete peresdat' test 1 raz!\n"); } }
Решение задачи: «Написать программу тестирования по истории с отображение вопросов и трех правильных ответов»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <math.h> int main(void) { char ch, A, B, C; int a, b, c, d, e, total; printf(" Zdravstvuite!\n Dobro pozhalovat' v programmu testirovaniya po ISTORII KAZAKHSTANA!\n"); printf(" Vyberite pravel'nyj otvet ( A, B ili C)\n"); printf(" 1. Data prinyatiya nezavisimosti Kazakhstana:\n A. 16.12.1990 B. 01.12.1991 C. 16.12.1991\n"); ch = getchar(); printf ("Otvet: %c\n", ch); if(ch=='C' || ch=='c') { printf("Otvet vernyj!\n"); a==1; } else { printf("Izvinite, Vy dopustili oshibku :(\n"); a==0; } printf("2. Kak nazyvaetsya verhovnyj pravitel' uisunej:\n A. Gun'mo B. Shakh C. Kagan\n"); ch = getchar(); printf ("Otvet: %c\n", ch); if(ch=='A' || ch=='a') { printf("Otvet vernyj!\n"); b==1; } else { printf("Izvinite, Vy dopustili oshibku :(\n"); b==0; } printf("3. Alexandr Makedonskiy voeval s sakami v:\n A. v 5 veke d.n.e B. 4 veke d.n.e C. v 7 veke d.n.e\n"); ch = getchar(); printf ("Otvet: %c\n", ch); if(ch=='B' || ch=='b') { printf("Otvet vernyj!\n"); c==1; } else { printf("Izvinite, Vy dopustili oshibku :(\n"); c==0; } printf("4. Kogo iz persidskih zarei pobedili saki:\n A. Kserksa B. Dariya C. Kira\n"); ch = getchar(); printf ("Otvet: %c\n", ch); if(ch=='C' || ch=='c') { printf("Otvet vernyj!\n"); d==1; } else { printf("Izvinite, Vy dopustili oshibku :(\n"); d==0; } printf("5. Pervyj prezident Respubliki Kazakhstan:\n A. Navarbaev B. Kunaev C. Andropov\n"); ch = getchar(); printf ("Otvet: %c\n", ch); if(ch=='A' || ch=='a') { printf("Otvet vernyj!\n"); e==1; } else { printf("Izvinite, Vy dopustili oshibku :(\n"); e==0; } total=(a+b+c+d+e)/5*100; printf("Vash resul'tat: %d ballov", total); { if(total >= 90) printf("Vasha ocenka A (5)\n"); if(75 <= total && total <= 89) printf("Vasha ocenka B (4)\n"); if(50 <= total && total <= 74) printf("Vasha ocenka C (3)\n"); if(total <= 49) printf("Vy ne sdali test! U vas peresdacha! Vy mozhete peresdat' test 1 raz!\n"); } }
Объяснение кода листинга программы
- Вопросы и ответы в коде представлены в формате:
- Вопрос для пользователя (printf)
- Получение ответа от пользователя (getchar)
- Проверка ответа (if-else)
- Вывод результата (printf)
- Код содержит 5 вопросов и 5 ответов, представленных в виде переменных a, b, c, d, e.
- Ответы на вопросы представлены вариантами A, B, C.
- Правильные ответы на каждый вопрос представлены в виде массива (например, a==1).
- Оценка результатов представлена в виде переменной total, которая вычисляется как сумма всех ответов, умноженная на 100.
- Оценка выводится на экран в зависимости от значения total.
- Если total >= 90, выводится
Vasha ocenka A (5)
. - Если 75 <= total && total <= 89, выводится
Vasha ocenka B (4)
. - Если 50 <= total && total <= 74, выводится
Vasha ocenka C (3)
. - Если total <= 49, выводится
Vy ne sdali test! U vas peresdacha! Vy mozhete peresdat' test 1 raz!
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д