请设计一个c语言程序,实现如下的功能:利用数组,由计算机生成10道100以内的2个数加法的式子,由用户进行解答,每道题有3次答题机会,第一次答对得10分,第二次答对得9分,第三次答对得8分,三次都答不对得0分,最后输出每道题的得分情况和最后的总分。
时间: 2024-05-15 20:15:19 浏览: 97
c语言用数组处理一些问题
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int score[10] = {0}; // 存储每道题的得分
int ans, input; // ans为正确答案,input为用户输入的答案
int chance = 3; // 答题机会
int total_score = 0; // 总得分
srand(time(NULL)); // 初始化随机数种子
// 生成10道100以内的2个数加法的式子
int i, j, num1, num2;
for (i = 0; i < 10; i++) {
num1 = rand() % 101;
num2 = rand() % 101;
printf("%d + %d = ", num1, num2);
ans = num1 + num2;
// 用户答题
while (chance > 0) {
scanf("%d", &input);
if (input == ans) {
if (chance == 3) {
score[i] = 10;
} else if (chance == 2) {
score[i] = 9;
} else {
score[i] = 8;
}
printf("答对了!得分:%d\n", score[i]);
total_score += score[i];
break;
} else {
chance--;
if (chance > 0) {
printf("答错了,你还有%d次机会,请重新作答:", chance);
} else {
printf("答错了,正确答案为%d,得分:0\n", ans);
}
}
}
chance = 3;
}
// 输出每道题的得分情况和总分
printf("每道题的得分情况:\n");
for (i = 0; i < 10; i++) {
printf("第%d题得分:%d\n", i+1, score[i]);
}
printf("总得分:%d\n", total_score);
return 0;
}
```
阅读全文