用matlab完成 建立结构体数组student,存储学生信息。 1 从键盘输入20位学生信息 [学号sno(无符号8位整型)、姓名name(字符串)、年龄age(无符号8位整型)、身高height(双精度浮点型)]; 2 按姓名查询学生信息:提示用户输入一位学生姓名,输出该姓名对应的所有学生信息(合并在一行输出);若输入的姓名找不到,则显示“No such student.”;3 找出最高的三位学生的基本信息(假定学生身高都不一样),并存成一个3×4的元胞数组A
时间: 2024-01-06 08:03:39 浏览: 55
好的,我能够理解您的问题。下面是用 MATLAB 实现的代码:
```
% 声明结构体数组
student = struct('sno', [], 'name', '', 'age', [], 'height', []);
% 从键盘输入20位学生信息
for i = 1:20
fprintf('请输入第 %d 位学生的信息:\n', i);
student(i).sno = input('学号:');
student(i).name = input('姓名:', 's');
student(i).age = input('年龄:');
student(i).height = input('身高:');
end
% 按姓名查询学生信息
name = input('请输入要查询的学生姓名:', 's');
flag = false;
for i = 1:20
if strcmp(name, student(i).name)
fprintf('学号:%d,姓名:%s,年龄:%d,身高:%.2f\n', student(i).sno, student(i).name, student(i).age, student(i).height);
flag = true;
end
end
if ~flag
disp('No such student.');
end
% 找出最高的三位学生的基本信息
[~, idx] = sort([student.height], 'descend');
A = cell(3, 4);
for i = 1:3
A{i, 1} = student(idx(i)).sno;
A{i, 2} = student(idx(i)).name;
A{i, 3} = student(idx(i)).age;
A{i, 4} = student(idx(i)).height;
end
disp(A);
```
希望这个代码能够帮助到您。如果您还有其他问题,请随时提出。