Решения (задачи 121-138)
Задача 130.
// Программа проверяет знание таблицы умножения #include <stdio.h> #include <conio.h> #include <stdlib.h> // для доступа к srand и rand #include <time.h> void main() int numbl,numb2; // сомножители N int res; int otv; int kol = 0; int i; time t t; // произведение // ответ испытуемого // количество правильных ответов // счетчик циклов // текущее время – для инициализации // генератора случайных чисел printf("\*** Проверка знания таблицы умножения ***\п"); printf(" После примера введите ответ и нажмите Enter"); srand((unsigned) time(&t));; // инициализация генератора // случайных чисел for (i = 1; i <= 10; i++) // 10 примеров numbl = rand()%7 + 2; // число от 2 до 9 numb2 = rand()%7 + 2; res = numbl * numb2; printf("%ix%i=", numbl, numb2); scanf("%i",&otv); if (otv == res) else printf("Вы ошиблись! %ix%i=%iХпПродолжим…\n", numbl, numb2, res); printf("Хп Правильных ответов: %i\n", kol); printf("Ваша оценка: "); switch (kol) case 10: puts("5"); break; case 9: puts("4"); break; case 8: puts("4"); break; case 7: puts("3"); break; default: puts("2"); break; printf("Хп Для завершения нажмите Enter"); getch();
Задача 131.
// Проверка умения складывать и вычитать числа #include <stdio.h> #include <conio.h> finclude <stdlib.h> // для доступа к srand и rand #include <time.h> tdefine LEVEL 97+2 // действия над числами от 2 до 99 void main() { int nuitibl, numb2; // числа int op; // действие над числами: //0 – сложение, 1 – вычитание char zop; // знак операции – "плюс" или "минус" int res; // результат int otv; // ответ испытуемого int kol =0; // количество правильных ответов int buf; // буфер для обмена numbl и numb2, //в случае, если numbl<numb2 int i; // счетчик циклов time_t t; // текущее время – для инициализации // генератора случайных чисел printf("ХпПроверка умения складывать и вычитать числа\п"); printf("После примера введите ответ и нажмите Enter"); kol = 0; srand((unsigned) time (&t));; // инициализация генератора // случайных чисел for (i = 1; i <= 10; i // сгенерируем пример numbl = rand() % LEVEL; // число от 2 до 99 numb2 = rand() % LEVEL; op = rand()%2; // действие над числами if (op == 0) res = numbl + numb2; zop = '+'; } else { // Вычитание zop = if (numbl < numb2) // обменяем numbl и numb2 buf = numb2; numb 2 = numbl; numbl = buf; res = numbl – numb2; } printf("%i%c%i=", numbl, zop, numb2); // вывести пример scanf("%i", &otv); // получить ответ испытуемого if (otv == res) else printf("Вы ошиблись. %i%c%i=%i\n", numbl, zop, numb2, res); printf("Правильных ответов: %i\n", kol); printf("Ваша оценка:\n"); switch (kol) case 10: puts("5"); break; case 9: puts("4"); break; case 8: puts("4"); break; case 7: put s("3"); break; default: puts("2"); break; printf("Хп Для завершения нажмите Enter") getch();