查看: 413|回复: 1|关注: 0

[已解决] 函数结果显示不全

[复制链接]

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
我在一本书上抄了如下程序结果如下:
>> Name={'赵一','王二','张三','李四','孙五','钱六'};
Score={90,46,84,71,62,100};
grade_assess(Name,Score)
学生姓名    得分    等级
赵一        90      
王二        46      
张三        84      
李四        71      
孙五        62      
钱六        100
等级那一栏为什么不显示啊……

源程序如下:
function grade_assess(Name,Score)
%此函数用来评定学生的成绩
%Name,Score为参数,需要用户输入
%Name中的元素为学生姓名
%Score中的元素为学生分数

%统计学生人数
n=length(Name);

%将成绩区间划开:优(85~100),良(70~84),及格(60~69),不及格(60以下)
for i=0:15
    A_level{i+1}=85+i;
    if i<=14
        B_level{i+1}=70+i;
        if(i<9)
            C_level{i+1}=60+i;
        end
    end
end

%创建存储成绩等级的数组
Level=cell(1,n);

%创建结构体S
S=struct('Name',Name,'Score',Score,'Level',Level);

%根据学生成绩,给出相应的等级
for i=i:n
    switch S(i).Score
        case A_level
            S(i).Level='优';
        case B_level
            S(i).Level='良';
        case C_level
            S(i).Level='及格';
        otherwise
            S(i).Level='不及格';
    end
end

%显示所有学生的成绩等级评定
disp(['学生姓名',blanks(4),'得分',blanks(4),'等级']);
for i=1:n
    disp([S(i).Name,blanks(8),num2str(S(i).Score),blanks(6),S(i).Level]);
end


新手

10 麦片

财富积分


050


0

主题

19

帖子

1

最佳答案
发表于 2019-3-16 11:55:40 | 显示全部楼层 |此回复为最佳答案
%根据学生成绩,给出相应的等级
for i=i:n
    switch S(i).Score
        case A_level
            S(i).Level='优';
        case B_level
            S(i).Level='良';
        case C_level
            S(i).Level='及格';
        otherwise
            S(i).Level='不及格';
    end
end
循环后面i=i:n中的“i:n”应改为“1:n”
for i=i:n->for i=1:n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表