为什么输出成绩排序后的结果,sickness和absent的成绩变为了0,是不是第一部分的换行发生问题,另外按照t1,t2,t3,t4,t5画直方图怎么画。
hang=size(chengji,1);
for i=1:hang
if strcmp(chengji{i,5},'absent')|| strcmp(chengji{i,5},'sickness')
for m=hang:1
if strcmp(chengji{m,5},'absent')~=0&&strcmp(chengji{m,5},'sickness')~=0
temp1=chengji(m,:);
chengji(m,:)=chengji(i,:);
chengji(i,:)=temp1;
end
end
end
end
for i=1:hang
for j=2:hang-1
if chengji{j,5}<chengji{j+1,5}
temp=chengji(j,:);
chengji(j,:)=chengji(j+1,:);
chengji(j+1,:)=temp;
end
end
end
disp('成绩排序结果');
disp(chengji);
c1=0;
c2=0;
c3=0;
for i=1:hang
if chengji{i,2}==1305
c1=c1+1;
elseif chengji{i,2}==1308
c2=c2+1;
elseif chengji{i,2}==1312
c3=c3+1;
end
end
X=[c1 c2 c3];
explode=zeros(size(X));
pie(X,explode,{'1305','1308','1312'});
t1=0;
t2=0;
t3=0;
t4=0;
t5=0;
t6=0;
for i=2:hang
if chengji{i,5}>=90&&chengji{i,5}<=100
t1=t1+1;
elseif chengji{i,5}>=80&&chengji{i,5}<90
t2=t2+1;
elseif chengji{i,5}>=70&&chengji{i,5}<80
t3=t3+1;
elseif chengji{i,5}>=60&&chengji{i,5}<70
t4=t4+1;
elseif chengji{i,5}<60&&chengji{i,5}>0
t5=t5+1;
elseif strcmp(chengji{i,5},'absent')|| strcmp(chengji{i,5},'sickness')
t6=t6+1;
end
end
disp('成绩分布情况');
disp('90~100人数');disp(num2str(t1));
disp('80~90人数');disp(num2str(t2));
disp('70~80人数');disp(num2str(t3));
disp('60~70人数');disp(num2str(t4));
disp('不及格人数');disp(num2str(t5));
disp('未参与考试人数');disp(num2str(t6));