c语言写十以内加减乘除运算和查看正确答案,错题重做的自测小程序
时间: 2024-03-12 19:46:49 浏览: 180
c语言自测题和答案~
好的,下面是C语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int num1, num2, ans, choice, correct = 0, wrong = 0;
srand(time(NULL)); // 设置时间种子,保证每次运行程序时生成的随机数都不同
do {
printf("请选择要练习的运算类型:\n");
printf("1. 加法\n");
printf("2. 减法\n");
printf("3. 乘法\n");
printf("4. 除法\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
if (choice == 5) break; // 退出程序
printf("请输入要练习的题目数量:");
int count;
scanf("%d", &count);
for (int i = 0; i < count; i++) {
// 生成两个随机数
num1 = rand() % 10 + 1;
num2 = rand() % 10 + 1;
switch (choice) {
case 1:
printf("%d + %d = ", num1, num2);
ans = num1 + num2;
break;
case 2:
printf("%d - %d = ", num1, num2);
ans = num1 - num2;
break;
case 3:
printf("%d * %d = ", num1, num2);
ans = num1 * num2;
break;
case 4:
printf("%d / %d = ", num1 * num2, num2);
ans = num1;
break;
}
int userAns;
scanf("%d", &userAns);
if (userAns == ans) {
printf("回答正确!\n");
correct++;
} else {
printf("回答错误!正确答案是:%d\n", ans);
wrong++;
}
}
// 显示本次练习结果
printf("本次练习结束!共回答%d道题目,其中%d道正确,%d道错误,正确率为%.2f%%。\n", correct + wrong, correct, wrong, (double)correct / (correct + wrong) * 100);
// 是否进行错题重做
if (wrong > 0) {
printf("是否进行错题重做?(1.是 2.否)");
int redo;
scanf("%d", &redo);
if (redo == 1) {
printf("开始错题重做...\n");
correct = 0;
wrong = 0;
i = -1; // 重新开始练习
}
}
} while (choice != 5);
printf("程序已退出,感谢使用!\n");
return 0;
}
```
运行程序后,按照提示选择要练习的运算类型和题目数量,程序会自动随机生成题目并等待用户输入答案,用户回答后会显示回答是否正确,并统计本次练习结果。如果用户回答错误,程序会显示正确答案,并且可以选择是否进行错题重做。如果选择错题重做,程序会重新从第一道错误题目开始练习,直到用户全部回答正确为止。如果选择退出程序,程序会结束运行。
阅读全文