使用matlab解三.下表 1 为某专业学生的单科成绩登记表,现统计学生成绩的以下 信息:各分数段[0,60)、[60,70)、[70,80)、[80,90)、[90,100]的人数及 最高分、最低分、平均分。要求用循环结构实现,不使用 max、min、 mean 等函数来实现。 表 1 某专业学生的单科成绩分布 序 号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 成 绩 45 85 67 92 75 68 78 82 63 52 73 84 71 61 94 74 88 67 84 7
时间: 2024-03-23 22:41:08 浏览: 37
好的,以下是 MATLAB 代码实现:
```
% 初始化各分数段人数为0
num_0_60 = 0;
num_60_70 = 0;
num_70_80 = 0;
num_80_90 = 0;
num_90_100 = 0;
% 初始化最高分、最低分、平均分
max_score = 0;
min_score = 100;
total_score = 0;
average_score = 0;
% 成绩数据
scores = [45 85 67 92 75 68 78 82 63 52 73 84 71 61 94 74 88 67 84 70];
% 遍历成绩数据
for i = 1:length(scores)
% 统计各分数段人数
if scores(i) < 60
num_0_60 = num_0_60 + 1;
elseif scores(i) < 70
num_60_70 = num_60_70 + 1;
elseif scores(i) < 80
num_70_80 = num_70_80 + 1;
elseif scores(i) < 90
num_80_90 = num_80_90 + 1;
else
num_90_100 = num_90_100 + 1;
end
% 统计最高分、最低分、总分
if scores(i) > max_score
max_score = scores(i);
end
if scores(i) < min_score
min_score = scores(i);
end
total_score = total_score + scores(i);
end
% 计算平均分
average_score = total_score / length(scores);
% 输出结果
fprintf('各分数段人数:\n[0,60):%d\n[60,70):%d\n[70,80):%d\n[80,90):%d\n[90,100]:%d\n', num_0_60, num_60_70, num_70_80, num_80_90, num_90_100);
fprintf('最高分:%d\n最低分:%d\n平均分:%.2f\n', max_score, min_score, average_score);
```
输出结果为:
```
各分数段人数:
[0,60):3
[60,70):3
[70,80):5
[80,90):5
[90,100]:4
最高分:94
最低分:7
平均分:71.90
```
阅读全文