Написать программу тестирования по истории с отображение вопросов и трех правильных ответов - 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!.