建立一个结构体的数组student,包括 3 个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个 3 行 10 列的数据表示 10 门课程(满分100分),且每门课程三个阶段的分数。 找到第 2 个人的分数并显示出来 2) 找到第 2 个人的每门课程 3 个阶段的平均分数并显示出来 3) 全班同学(指这 3 个学生)的 10 门课程的每门课程的平均分如何计算 出来?要求放到一个数组里。 找到这个班所有同学的姓名放到一个元胞数组里。
1条回答 默认 最新
- 技术专家团-Joel 2021-10-15 20:56关注
你好同学,代码供参考,
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 数组 {'赵小明'} {'钱小红'} {'孙小莉'}
有帮助望采纳哟
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用