Программа проверки знаний таблицы умножения - C (СИ)
Формулировка задачи:
Таблица умножения. Например, сколько будет .... Если ответ не верный: вывести попробуй ещо. Программа должна считать количество правильных и неправильных ответов (до 10 ответов), после вычислить процент правильных ответов.
Решение задачи: «Программа проверки знаний таблицы умножения»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
static const int questions[][2] = {
{2, 7}, {3, 7}, {5, 4}, {5, 7}, {3, 4},
{8, 3}, {6, 6}, {5, 5}, {7, 7}, {3, 9}
};
#define SIZE (sizeof questions / sizeof *questions)
int main(void)
{
size_t number, attempts;
for(number = attempts = 0; number < SIZE && attempts < 10; ++attempts)
{
const int *question = questions[number];
int answer;
printf("%02zd) %d * %d = ", number + 1, question[0], question[1]);
fflush(stdout);
scanf("%d", &answer);
if(answer == question[0] * question[1])
{
puts("Correct!");
++number;
}
else
puts("Try once more");
}
printf("Questions answered: %zd; Total # of attempts: %zd; %% of correct answers: %.0f%%\n",
number, attempts, (double) number / attempts * 100);
exit(EXIT_SUCCESS);
}
Объяснение кода листинга программы
- Программа начинается с объявления массива вопросов для проверки знаний таблицы умножения.
- Размер массива вопросов определяется в переменной
SIZE. - В цикле
forпроисходит проверка каждого вопроса с помощью переменнойnumber. - Для каждого вопроса выводится сам вопрос и просится ввести ответ.
- Введенный ответ сравнивается с правильным ответом на этот вопрос.
- Если ответы совпадают, выводится сообщение
Correct!и увеличивается счетчик правильных ответовnumber. - Если ответы не совпадают, выводится сообщение
Try once more. - После прохождения всех вопросов выводится общее количество правильных ответов, количество попыток и процент правильных ответов.
- Программа завершается с кодом успеха
EXIT_SUCCESS.