#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int choice, num1, num2, answer, input, score = 0, count = 0, wrong_count = 0; char op; srand(time(NULL)); printf("欢迎使用小学数学学习系统\n"); printf("请输入用户名和密码以登录系统\n"); while (1) { printf("\n请选择需要使用的功能:\n"); printf("1. 随机出题\n"); printf("2. 自动评分\n"); printf("3. 查看正确答案\n"); printf("4. 错题重做\n"); printf("5. 退出系统\n"); printf("请输入选项序号:"); scanf("%d", &choice); switch (choice) { case 1: count = 0; wrong_count = 0; score = 0; printf("\n请输入题目数量:"); scanf("%d", &count); for (int i = 0; i < count; i++) { num1 = rand() % 100; num2 = rand() % 100; op = rand() % 4; switch (op) { case 0: printf("%d + %d = ", num1, num2); answer = num1 + num2; break; case 1: printf("%d - %d = ", num1, num2); answer = num1 - num2; break; case 2: printf("%d * %d = ", num1, num2); answer = num1 * num2; break; case 3: printf("%d / %d = ", num1, num2); answer = num1 / num2; break; } scanf("%d", &input); if (input == answer) { printf("回答正确!\n"); score++; } else { printf("回答错误!正确答案为:%d\n", answer); wrong_count++; } } break; case 2:printf("\n您的得分是:%d 分\n", score); break; case 3: printf("\n请输入题目数量:"); scanf("%d", &count); for (int i = 0; i < count; i++) { num1 = rand() % 100; num2 = rand() % 100; op = rand() % 4; switch (op) { case 0: printf("%d + %d = %d\n", num1, num2, num1+num2); break; case 1: printf("%d - %d = %d\n", num1, num2, num1-num2); break; case 2: printf("%d * %d = %d\n", num1, num2, num1*num2); break; case 3: printf("%d / %d = %d\n", num1, num2, num1/num2); break; } } break; case 4: printf("\n请输入需要重做的题目数量:"); scanf("%d", &count); for (int i = 0; i < count; i++) { num1 = rand() % 100; num2 = rand() % 100; op = rand() % 4; switch (op) { case 0: printf("%d + %d = ", num1, num2); answer = num1 + num2; break; case 1: printf("%d - %d = ", num1, num2); answer = num1 - num2; break; case 2: printf("%d * %d = ", num1, num2); answer = num1 * num2; break; case 3: printf("%d / %d = ", num1, num2); answer = num1 / num2; break; } scanf("%d", &input); if (input == answer) { printf("回答正确!\n"); } else { printf("回答错误!正确答案为:%d\n", answer); wrong_count++; } } break; case 5: printf("\n感谢使用小学数学学习系统!\n"); exit(0); default: printf("\n请输入正确的选项序号!\n"); break; } } return 0; }的错误
时间: 2024-04-04 19:31:19 浏览: 117
C语言指针、函数指针学习笔记.md
这段代码没有明确的错误,但是有一些可以改进的地方:
1. 在进行除法运算时,可能会出现除数为0的情况,程序应该加上对除数为0的判断。
2. 在生成运算符时,应该使用除法运算的概率较小,因为可能会出现小数,而且对于小学生来说,除法可能会比较困难。
3. 在输出题目和正确答案时,可以加上一些格式化的控制,让输出更美观。
4. 在进行重做时,应该先判断是否有错题,如果没有就不用进行重做了。
5. 在进行评分时,应该加上总题目数的统计。
6. 可以加上一些界面美化的操作,让程序更友好易用。
以上是一些可以改进的地方,但是这段代码本身并没有明显的错误。
阅读全文