用C 一个练习算术的小程序。编写加、减、乘、除4个自定义函数:jia(),jian(),cheng(),chu(),在主函数中调用这4个函数去完成以下功能: (1)随机生成5道四则运算题,题目的类型由加、减、乘、除中任意类型混合出题(即5道题目中有各种类型的题目),每道题目的两个整数是20以内的随机数,题目显示在屏幕上,由用户输入答案(如下图所示)。 (2)程序判断用户输入的答案是否正确,统计答题的正确率,并将每次的答题正确率保存到result.txt文本文件中。运行结束时,询问是否继续练习,如果回答“Y”则继续进行练习,如果回答“N"则退出练习。
时间: 2024-02-18 13:05:10 浏览: 203
C语言程序设计(第三版)习题答案-谭浩强.pdf
好的,以下是您需要的 C 语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 自定义加法函数
int jia(int a, int b) {
return a + b;
}
// 自定义减法函数
int jian(int a, int b) {
return a - b;
}
// 自定义乘法函数
int cheng(int a, int b) {
return a * b;
}
// 自定义除法函数
int chu(int a, int b) {
return a / b;
}
int main() {
int i, a, b, ans, userAns, correctCount = 0;
char op;
char choice = 'Y';
float accuracy;
FILE *fp;
srand(time(NULL)); // 设置随机数种子
while (choice == 'Y') {
for (i = 0; i < 5; i++) {
a = rand() % 21; // 生成0到20之间的随机整数
b = rand() % 21;
switch (rand() % 4) { // 随机生成加减乘除
case 0:
op = '+';
ans = jia(a, b);
break;
case 1:
op = '-';
ans = jian(a, b);
break;
case 2:
op = '*';
ans = cheng(a, b);
break;
case 3:
op = '/';
ans = chu(a, b);
break;
}
printf("%d %c %d = ", a, op, b);
scanf("%d", &userAns);
if (userAns == ans) {
printf("回答正确!\n");
correctCount++;
} else {
printf("回答错误!正确答案为:%d\n", ans);
}
}
accuracy = (float) correctCount / 5 * 100; // 计算正确率
fp = fopen("result.txt", "a"); // 打开文件,追加写入
fprintf(fp, "正确率:%.2f%%\n", accuracy); // 将正确率写入文件
fclose(fp); // 关闭文件
printf("本次练习结束,正确率为:%.2f%%\n", accuracy);
printf("是否继续练习(Y/N)?");
scanf(" %c", &choice); // 注意要在%c前加一个空格,避免读取上一次输入的回车符
correctCount = 0; // 清零计数器
}
return 0;
}
```
程序流程说明:
1. 首先定义了四个自定义函数:`jia()`、`jian()`、`cheng()`、`chu()`,分别用于实现加法、减法、乘法、除法运算。
2. 在 `main()` 函数中,首先定义了一些变量,包括两个整数 `a` 和 `b`,一个字符 `op` 用于表示运算符,一个整数 `ans` 用于存储正确答案,一个整数 `userAns` 用于存储用户输入的答案,一个整数 `correctCount` 用于统计答对题目的个数,一个字符 `choice` 用于存储用户的选择。
3. 接着使用 `srand(time(NULL))` 函数设置随机数种子,确保每次运行程序时生成的随机数序列不同。
4. 进入 `while` 循环,只要用户选择继续练习,就一直进行下去。循环内部使用 `for` 循环生成 5 道四则运算题,每次循环中先生成两个 0 到 20 的随机整数,再随机生成加、减、乘、除中的一种运算符,并根据运算符调用相应的函数计算正确答案。然后输出题目,等待用户输入答案,判断用户输入的答案是否正确,如果正确则计数器加一,并输出“回答正确!”否则输出“回答错误!正确答案为:xxx”,其中 xxx 表示正确答案。
5. 五道题目输出结束后,计算本次练习的正确率,将正确率写入 result.txt 文件中,并输出本次练习的正确率。
6. 提示用户是否继续练习,如果选择继续,则回到循环开始处,否则结束程序。注意在读取用户的选择时,要在 `%c` 前加一个空格,避免读取上一次输入的回车符。
希望这个程序能帮到您!
阅读全文