138、编写一个程序,读取100名学生的成绩并显示每个成绩的出现频率。程序还应显示出现次数最多的成绩及其出现次数。考虑可能有多个成绩出现次数相同且最多的情况。程序应强制用户输入范围在[0, 10]内的成绩。假设成绩为整数。
以下是实现该功能的C语言代码:
#include <stdio.h>
#define STUDENTS 100
int main() {
int grades[STUDENTS];
int frequency[11] = {0}; // 用于存储每个成绩的频率,索引0 - 10对应成绩0 - 10
int i, max_freq = 0;
// 读取100名学生的成绩
for (i = 0; i < STUDENTS; i++) {
do {
printf("请输入第 %d 个学生的成绩 (0 - 10): ", i + 1);
scanf("%d", &grades[i]);
} while (grades[i] < 0 || grades[i] > 10);
// 统计每个成绩的频率
frequency[grades[i]]++;
}
// 找出最大频率
for (i = 0; i < 11; i++) {
if (frequency[i] > max_freq) {
max_freq = frequency[i];
}
}
// 显示每个成绩的频率
printf("每个成绩的频率:\n");
for (i = 0; i < 11; i++) {
printf("成绩 %d 出现的频率: %d\n", i, frequency[i]);
}
// 显示出现次数最多的成绩及其出现次数
printf("出现次数最多的成绩及其出现次数:\n");
for (i = 0; i < 11; i++) {
if (frequency[i] == max_freq) {
printf("成绩 %d 出现了 %d 次\n", i, frequency[i]);
}
}
return 0;
}
这段代码首先读取100名学生的成绩,并确保成绩在[0, 10]范围内。然后统计每个成绩的出现频率,找出最大频率。最后显示每个成绩的频率以及出现次数最多的成绩及其出现次数。
139、编写一个程序,读取整数并将它们存储在一个方阵(例如 3×3)中。然后,程序应检查该数组是上三角矩阵、下三角矩阵还是两者皆是。如果一个方阵主对角线下方(上方)的所有元素都为零,则称其为上(下)三角矩阵。
以下是一个满足该需求的 C 语言程序示例:
#include <stdio.h>
#define SIZE 3
int main() {
int arr[SIZE][SIZE];
int i, j;
int isUpper = 1, isLower = 1;
// 读取整数并存储在方阵中
for (i = 0; i < SIZE; i++) {
for (j = 0; j < SIZE; j++) {
printf("请输入 arr[%d][%d] 的值: ", i, j);
scanf("%d", &arr[i][j]);
}
}
// 检查是否为上三角矩阵
for (i = 1; i < SIZE; i++) {
for (j = 0; j < i; j++) {
if (arr[i][j] != 0) {
isUpper = 0;
break;
}
}
}
// 检查是否为下三角矩阵
for (i = 0; i < SIZE; i++) {
for (j = i + 1; j < SIZE; j++) {
if (arr[i][j] != 0) {
isLower = 0;
break;
}
}
}
// 输出结果
if (isUpper && isLower) {
printf("该矩阵既是上三角矩阵也是下三角矩阵。\n");
} else if (isUpper) {
printf("该矩阵是上三角矩阵。\n");
} else if (isLower) {
printf("该矩阵是下三角矩阵。\n");
} else {
printf("该矩阵既不是上三角矩阵也不是下三角矩阵。

最低0.47元/天 解锁文章
2617

被折叠的 条评论
为什么被折叠?



