c语言程序设计,随机输出十道有加减乘除并判断正误并求平均值最大值最小值将答案按从小到大和从大到小排序
时间: 2024-03-13 22:45:54 浏览: 50
好的,下面是一个基本的实现思路:
1. 使用随机数生成器生成十道题目,每道题目包括两个操作数和一个运算符。
2. 让用户输入答案,并判断正误。如果答案正确,记录下来。
3. 所有题目答完后,计算正确答案的平均值、最大值和最小值。
4. 将所有正确答案按从小到大和从大到小排序。
以下是一个简单的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, num, a, b, ans, correct = 0;
char op;
float sum = 0, avg = 0;
int result[10];
srand((unsigned)time(NULL));
// 生成10道题目
for(i = 1; i <= 10; i++)
{
a = rand() % 100;
b = rand() % 100;
num = rand() % 4;
switch(num)
{
case 0:
op = '+';
ans = a + b;
break;
case 1:
op = '-';
ans = a - b;
break;
case 2:
op = '*';
ans = a * b;
break;
case 3:
op = '/';
ans = a / b;
break;
default:
break;
}
printf("第%d题: %d %c %d = ", i, a, op, b);
scanf("%d", &result[i - 1]);
if(result[i - 1] == ans)
{
correct++;
sum += ans;
}
}
// 计算平均值、最大值和最小值
if(correct > 0)
{
avg = sum / correct;
printf("正确答案的平均值为: %.2f\n", avg);
}
else
{
printf("所有答案都不正确!\n");
return 0;
}
int max = result[0], min = result[0];
for(i = 1; i < correct; i++)
{
if(result[i] > max)
max = result[i];
if(result[i] < min)
min = result[i];
}
printf("正确答案的最大值为: %d\n", max);
printf("正确答案的最小值为: %d\n", min);
// 将所有正确答案按从小到大排序
for(i = 0; i < correct - 1; i++)
{
for(int j = i + 1; j < correct; j++)
{
if(result[i] > result[j])
{
int temp = result[i];
result[i] = result[j];
result[j] = temp;
}
}
}
// 输出从小到大排序的结果
printf("正确答案从小到大排序为: ");
for(i = 0; i < correct; i++)
{
printf("%d ", result[i]);
}
// 将所有正确答案按从大到小排序
for(i = 0; i < correct - 1; i++)
{
for(int j = i + 1; j < correct; j++)
{
if(result[i] < result[j])
{
int temp = result[i];
result[i] = result[j];
result[j] = temp;
}
}
}
// 输出从大到小排序的结果
printf("\n正确答案从大到小排序为: ");
for(i = 0; i < correct; i++)
{
printf("%d ", result[i]);
}
return 0;
}
```
注意:本程序中未对除数为0的情况做处理。实际应用时需要注意这个问题。
阅读全文