建立一个结构体的数组student,包括 3 个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个 3 行 10 列的数据表示 10 门课程(满分100分),且每门课程三个阶段的分数。 找到第 2 个人的分数并显示出来 2) 找到第 2 个人的每门课程 3 个阶段的平均分数并显示出来 3) 全班同学(指这 3 个学生)的 10 门课程的每门课程的平均分如何计算 出来?要求放到一个数组里。 找到这个班所有同学的姓名放到一个元胞数组里。
你好同学,代码供参考,
rng(1);
student(1).name = '赵小明'; student(1).age = 14; student(1).score = randi([1,100], 3,10);
student(2).name = '钱小红'; student(2).age = 13; student(2).score = randi([1,100], 3,10);
student(3).name = '孙小莉'; student(3).age = 15; student(3).score = randi([1,100], 3,10);
% 第二个人的分数显示出来
fprintf('第二个人的分数:\n')
disp(student(2).score)
fprintf('第二个人的每门课程 3 个阶段的平均分数:\n')
% 找到第 2 个人的每门课程 3 个阶段的平均分数并显示出来
disp(mean(student(2).score,1))
% 三个人没门课的平均分
fprintf('三个人的每门课程的平均分数:\n')
s = student(1).score;
for i = 2:numel(student)
s = s + student(i).score;
end
disp(mean(s,1)/3)
% 找到这个班所有同学的姓名放到一个元胞数组里
Names = {student(:).name}
结果显示如下:
第二个人的分数:
10 54 69 76 29 45 29 68 50 15
43 70 84 99 79 91 14 22 6 59
96 32 2 75 11 30 2 27 58 70
第二个人的每门课程 3 个阶段的平均分数:
列 1 至 7
49.666666666666664 52.000000000000000 51.666666666666664 83.333333333333329 39.666666666666664 55.333333333333336 15.000000000000000
列 8 至 10
39.000000000000000 38.000000000000000 48.000000000000000
三个人的每门课程的平均分数:
列 1 至 7
43.111111111111114 34.777777777777779 51.444444444444450 64.333333333333329 40.666666666666664 53.000000000000000 44.333333333333336
列 8 至 10
54.444444444444450 51.222222222222221 53.333333333333336
Names =
1×3 cell 数组
{'赵小明'} {'钱小红'} {'孙小莉'}
有帮助望采纳哟