用C 一个练习算术的小程序。编写加、减、乘、除4个自定义函数:jia(),jian(),cheng(),chu(),在主函数中调用这4个函数去完成以下功能: (1)随机生成5道四则运算题,题目的类型由加、减、乘、除(四舍五入保留两位小数)中任意类型混合出题(即5道题目中有各种类型的题目),每道题目的两个整数是20以内的随机数,题目显示在屏幕上,由用户输入答案(如下图所示)。 (2)程序判断用户输入的答案是否正确,统计答题的正确率,并将每次的答题正确率保存到result.txt文本文件中。运行结束时,询问是否继续练习,如果回答“Y”则继续进行练习,如果回答“N"则退出练习。
时间: 2024-02-18 21:05:39 浏览: 17
好的,以下是你需要的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//自定义加法函数
float jia(float a, float b) {
return a + b;
}
//自定义减法函数
float jian(float a, float b) {
return a - b;
}
//自定义乘法函数
float cheng(float a, float b) {
return a * b;
}
//自定义除法函数
float chu(float a, float b) {
return a / b;
}
int main() {
srand(time(NULL)); //生成随机数种子
float a, b, result;
int operator, i, correct = 0, total = 0;
char choice;
do {
for (i = 1; i <= 5; i++) {
a = rand() % 20 + 1; //生成20以内的随机数
b = rand() % 20 + 1;
operator = rand() % 4; //生成0~3的随机数,分别代表加、减、乘、除
switch (operator) {
case 0:
printf("%d. %.2f + %.2f = ", i, a, b);
result = jia(a, b);
break;
case 1:
printf("%d. %.2f - %.2f = ", i, a, b);
result = jian(a, b);
break;
case 2:
printf("%d. %.2f * %.2f = ", i, a, b);
result = cheng(a, b);
break;
case 3:
printf("%d. %.2f / %.2f = ", i, a, b);
result = chu(a, b);
break;
}
float answer;
scanf("%f", &answer);
if (answer == result) {
printf("Correct!\n");
correct++;
} else {
printf("Wrong! The answer is %.2f\n", result);
}
total++;
}
printf("\nYou have answered %d out of %d questions correctly.\n", correct, total);
printf("Correct rate: %.2f%%\n", (float) correct / total * 100);
FILE *fp = fopen("result.txt", "a"); //打开result.txt,如果不存在就创建
fprintf(fp, "%.2f%%\n", (float) correct / total * 100); //将答题正确率写入文件
fclose(fp); //关闭文件
printf("Do you want to continue? (Y/N) ");
scanf(" %c", &choice); //注意这里要加空格,否则无法读入字符
correct = 0;
total = 0;
} while (choice == 'Y' || choice == 'y');
return 0;
}
```
这个程序会随机生成5道加、减、乘、除的四则运算题,每道题目的两个整数是20以内的随机数。程序会将题目显示在屏幕上,等待用户输入答案。程序会判断用户输入的答案是否正确,统计答题的正确率,并将每次的答题正确率保存到result.txt文本文件中。程序运行结束时会询问是否继续练习,如果回答“Y”则继续进行练习,如果回答“N"则退出练习。