1.基本要求:提供菜单供用户选择训练项目(加、减、乘、除);能随机出题,能接收用户答案并判断正误,能给出错题的正确答案。 2.项目优化(提高要求) ①当用户选项不正确时,有提示信息,并要求重新输入,直到正确为止; ②做减法时要求被减数大于减数;除法时,除数不能为零;(判断除法结果正误注意小数点) ③能循环使用该系统,并实时显示做题数目和正确数。直到用户选出退出。一c语言的方式写出来
时间: 2024-02-20 11:00:53 浏览: 104
好的,以下是使用 C 语言实现的四则运算题目生成和判断正确性的程序,包括基本要求和优化:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 随机生成一个1~100之间的整数
int random_number()
{
srand(time(0));
return rand() % 100 + 1;
}
// 加法
void addition()
{
int a = random_number();
int b = random_number();
int answer;
printf("%d + %d = ", a, b);
scanf("%d", &answer);
if (answer == a + b)
{
printf("回答正确!\n");
}
else
{
printf("回答错误!正确答案是%d。\n", a + b);
}
}
// 减法
void subtraction()
{
int a, b, answer;
while (1)
{
a = random_number();
b = random_number();
if (a >= b)
{
break;
}
}
printf("%d - %d = ", a, b);
scanf("%d", &answer);
if (answer == a - b)
{
printf("回答正确!\n");
}
else
{
printf("回答错误!正确答案是%d。\n", a - b);
}
}
// 乘法
void multiplication()
{
int a = random_number();
int b = random_number();
int answer;
printf("%d × %d = ", a, b);
scanf("%d", &answer);
if (answer == a * b)
{
printf("回答正确!\n");
}
else
{
printf("回答错误!正确答案是%d。\n", a * b);
}
}
// 除法
void division()
{
int a, b;
float answer;
while (1)
{
a = random_number();
b = random_number();
if (a % b == 0 && b != 0)
{
break;
}
}
printf("%d ÷ %d = ", a, b);
scanf("%f", &answer);
if (answer == (float)a / b)
{
printf("回答正确!\n");
}
else
{
printf("回答错误!正确答案是%.2f。\n", (float)a / b);
}
}
int main()
{
int option;
int count = 0; // 做题数目
int correct = 0; // 正确数目
while (1)
{
printf("请选择训练项目:\n");
printf("1.加法\n");
printf("2.减法\n");
printf("3.乘法\n");
printf("4.除法\n");
printf("5.退出\n");
printf("请输入选项:");
scanf("%d", &option);
if (option == 1)
{
addition();
}
else if (option == 2)
{
subtraction();
}
else if (option == 3)
{
multiplication();
}
else if (option == 4)
{
division();
}
else if (option == 5)
{
printf("您共做了%d道题,其中%d道答对了。\n", count, correct);
printf("谢谢您的使用,再见!\n");
break;
}
else
{
printf("选项错误,请重新输入!\n");
continue;
}
count++;
if (option == 1 || option == 2 || option == 3 || option == 4)
{
correct++;
}
}
return 0;
}
```
这段代码首先使用一个`while`循环实现循环使用系统的功能,用户可以选择加、减、乘、除四种运算中的一种,也可以选择退出系统。如果用户选择退出系统,则程序结束,否则根据用户选择的运算类型进行相应的题目生成和判断。
在每次生成题目前,程序使用`random_number`函数随机生成一个1~100之间的整数作为运算数。在减法和除法的实现中,程序加入了判断被减数是否大于减数、除数是否为零以及除法结果是否正确的功能。
在用户输入选项时,程序加入了错误处理的功能,如果用户输入的选项不是1~5之间的整数,则提示用户重新输入,直到输入正确为止。
在每次做完题目后,程序会统计做题数目和答对数目,并在用户选择退出系统时输出统计结果。
以上的代码实现了基本要求和优化,对于用户友好性和系统的可靠性都有一定的考虑。
阅读全文