用c语言编写加减乘除4个自定义函数add,sub,mul,div,在主函数中调用这4个函数去完成以下功能: (1)随机生成5道四则运算题,题目的类型自加,减,乘,除中任意混合出题(即5道题目中有各种类型的题目),每个题目的2个整数是20以内的随机数,题目显示在屏幕上,由用户输入答案(如下图所示)。 (2)程序判断用户输入的答案是否正确,统计答题的正确率。运行结束时,询问是否继续练习,如果回答“Y”则继续进行练习,如果回答“N”则退出练习。 (3)把每次所做的题目和答题的准确率输出在屏幕上,同时也把每次的运行结果保存到result.txt文本文件中。
时间: 2024-03-13 17:47:45 浏览: 109
C语言,计算器程序,可以实现加减乘除等功能
5星 · 资源好评率100%
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
float div(int a, int b) {
return (float)a / b;
}
void generate_question(char* question, int* answer) {
char operations[] = {'+', '-', '*', '/'};
int a = rand() % 20 + 1;
int b = rand() % 20 + 1;
char operation = operations[rand() % 4];
if (operation == '/' && a % b != 0) {
b = rand() % a + 1;
}
sprintf(question, "%d %c %d = ", a, operation, b);
if (operation == '+') {
*answer = add(a, b);
} else if (operation == '-') {
*answer = sub(a, b);
} else if (operation == '*') {
*answer = mul(a, b);
} else if (operation == '/') {
*answer = div(a, b);
}
}
int main() {
srand(time(NULL));
int correct_count = 0;
int total_count = 0;
while (1) {
char questions[5][20];
int answers[5];
float accuracy;
for (int i = 0; i < 5; i++) {
char question[20];
int answer;
generate_question(question, &answer);
strcpy(questions[i], question);
answers[i] = answer;
printf("%s", question);
char str_answer[10];
scanf("%s", str_answer);
if (atoi(str_answer) == answer) {
correct_count++;
}
total_count++;
}
accuracy = (float)correct_count / total_count;
printf("准确率:%.2f%%\n", accuracy * 100);
FILE* fp = fopen("result.txt", "a");
if (fp) {
fprintf(fp, "题目:{");
for (int i = 0; i < 5; i++) {
fprintf(fp, "%s,", questions[i]);
}
fprintf(fp, "}\n");
fprintf(fp, "答案:{");
for (int i = 0; i < 5; i++) {
fprintf(fp, "%d,", answers[i]);
}
fprintf(fp, "}\n");
fprintf(fp, "准确率:%.2f%%\n", accuracy * 100);
fclose(fp);
}
char option;
printf("是否继续练习?(Y/N)");
scanf(" %c", &option);
if (option == 'N' || option == 'n') {
break;
}
correct_count = 0;
total_count = 0;
}
return 0;
}
```
在这个程序中,我们定义了4个自定义函数`add`、`sub`、`mul`、`div`,用于进行加减乘除运算。`generate_question`函数用于随机生成一个运算题目,并返回题目和答案。`main`函数用于进行主要流程的控制,包括随机生成5道题目,用户输入答案,判断答案是否正确,输出准确率,保存结果到文件,询问是否继续练习等。程序的运行结果和保存的结果会保存在`result.txt`文件中。
阅读全文