我有个C语言问题,就是比如有十个题目,要求输入十个题目的分值,做对得分,做错零分,用C语言写出有多少种分数情况,以及每一种对应的分数一一列出 (输入每一题对应的分数) 输出: 91(种数) 0 12.............(每一种情况对应的分数)
时间: 2024-05-06 12:19:58 浏览: 13
以下是一个可能的解决方案:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_QUESTIONS 10
#define MAX_SCORE 100
int main() {
int scores[MAX_QUESTIONS];
int num_scores = 1; // 初始只有一种情况,即全部得分为0
int all_scores[MAX_SCORE] = {0}; // 用一个数组记录所有可能的总分数
int i, j;
// 输入每一题的分值
printf("请输入每一题的分值(十个数字,以空格分隔):\n");
for (i = 0; i < MAX_QUESTIONS; i++) {
scanf("%d", &scores[i]);
}
// 计算所有可能的总分数
for (i = 0; i < MAX_QUESTIONS; i++) { // 遍历每一道题目
int new_num_scores = num_scores; // 记录新增的分数情况数目
for (j = 0; j < num_scores; j++) { // 遍历已有的分数情况
all_scores[new_num_scores * j + j] = all_scores[j]; // 将原有的分数情况复制一份
all_scores[new_num_scores * j + j] += scores[i]; // 在复制的分数情况上加上当前题目的分数
}
num_scores *= 2; // 新增的分数情况数目是原有数目的两倍
}
// 输出结果
printf("共有%d种分数情况,分别为:\n", num_scores);
for (i = 0; i < num_scores; i++) {
printf("%d ", all_scores[i]);
}
printf("\n");
return 0;
}
```
该程序中,我们用一个数组 `scores` 记录每一道题目的分数,用一个数组 `all_scores` 记录所有可能的总分数。我们首先将所有分数情况初始化为0分,然后对于每一道题目,在已有的分数情况上加上该题目的分数,得到所有可能的新分数情况,最后将新分数情况加入到已有情况中,即可得到所有可能的总分数。程序输出所有可能的总分数,以及对应的分数情况数目。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)