利用c语言编写代码实现10以内随机数,随机出四则运算题,题目数量由用户给出,答完题判断对错后给出分数,然后再添加一些混合运算,总分只有一百分
时间: 2023-07-15 18:11:19 浏览: 98
简单的小程序,实现的是随机出10道四则运算的题目,同时可以批改和打分。主要在界面方面花了点时间.zip
以下是利用C语言编写的代码实现10以内随机数,随机出四则运算题,题目数量由用户给出,答完题判断对错后给出分数,然后再添加一些混合运算,总分只有一百分的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 生成10以内的随机数
int generateNum() {
return rand() % 10 + 1;
}
// 随机生成运算符
char generateOperator() {
int op = rand() % 4;
switch(op) {
case 0:
return '+';
case 1:
return '-';
case 2:
return '*';
case 3:
return '/';
}
}
// 随机生成四则运算题目
void generateQuestion(int num, int* result) {
int num1, num2, num3, num4, num5, num6;
char op1, op2, op3, op4, op5;
int res1, res2, res3, res4;
for (int i = 0; i < num; i++) {
num1 = generateNum();
num2 = generateNum();
num3 = generateNum();
num4 = generateNum();
num5 = generateNum();
num6 = generateNum();
op1 = generateOperator();
op2 = generateOperator();
op3 = generateOperator();
op4 = generateOperator();
op5 = generateOperator();
res1 = (op1 == '+') ? num1 + num2 : (op1 == '-') ? num1 - num2 : (op1 == '*') ? num1 * num2 : num1 / num2;
res2 = (op2 == '+') ? res1 + num3 : (op2 == '-') ? res1 - num3 : (op2 == '*') ? res1 * num3 : res1 / num3;
res3 = (op3 == '+') ? res2 + num4 : (op3 == '-') ? res2 - num4 : (op3 == '*') ? res2 * num4 : res2 / num4;
res4 = (op4 == '+') ? res3 + num5 : (op4 == '-') ? res3 - num5 : (op4 == '*') ? res3 * num5 : res3 / num5;
result[i] = (op5 == '+') ? res4 + num6 : (op5 == '-') ? res4 - num6 : (op5 == '*') ? res4 * num6 : res4 / num6;
}
}
// 判断用户输入的答案是否正确
int checkAnswer(int answer, int* result, int index) {
return answer == result[index];
}
// 计算分数
int calculateScore(int* results, int* answers, int num) {
int score = 0;
for (int i = 0; i < num; i++) {
if (checkAnswer(answers[i], results, i)) {
score += 10;
}
}
return score;
}
int main() {
int num, answer, score;
printf("请输入题目数量:");
scanf("%d", &num);
int results[num];
generateQuestion(num, results);
printf("请依次回答以下题目:\n");
for (int i = 0; i < num; i++) {
printf("%d. ", i + 1);
printf("%d ", results[i]);
printf("= ");
scanf("%d", &answer);
if (checkAnswer(answer, results, i)) {
printf("回答正确!\n\n");
} else {
printf("回答错误!正确答案为 %d\n\n", results[i]);
}
}
score = calculateScore(results, answers, num);
printf("您的得分为 %d 分,总分为 100 分\n", score);
return 0;
}
```
在这个程序中,我们先定义了 `generateNum` 函数来生成10以内的随机数, `generateOperator` 函数来随机生成运算符, `generateQuestion` 函数来随机生成四则运算题目。接着,我们定义了 `checkAnswer` 函数来判断用户输入的答案是否正确。最后,我们定义了 `calculateScore` 函数来计算分数。
在 `main` 函数中,我们先让用户输入题目数量,然后随机生成相应数量的四则运算题目并输出。接着,我们让用户依次回答每个题目,并判断答案是否正确。最后,我们计算用户的得分并输出。
阅读全文