习题三
3-2 从键盘输入一个三位整数,将它反向输出。如输入639,输出为936 程序如下:
m=input('请输入一个三位整数:'); m1=fix(m/100);%求m的百位整数
m2=rem(fix(m/10),10);%求m的十位数字 m3=rem(m,10);%求m的个位数字 m=m3*100+m2*10+m1%反向输出m 3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。 要求:(1)分别用if语句和switch语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 程序如下: (1)if语句
c=input('请输入成绩:'); if c>=90&c<=100 disp('A 成绩合理'); elseif c>=80&c<=89
disp('B 成绩合理'); elseif c>=70&c<=79 disp('C 成绩合理'); elseif c>=60&c<=69 disp('D 成绩合理'); elseif c<60
disp('E 成绩合理'); else
disp('成绩错误'); end
(2)switch语句
c=input('请输入成绩:'); switch fix(c)
case num2cell(90:100) disp('A 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(0:59) disp('E 成绩合理'); otherwise
disp('成绩错误'); end
3-4 建立5*6矩阵,要求输出矩阵第N行元素。当N值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。 程序如下: clear all
a=fix(rand(5,6)*89)+10;
n=input('请输入行数n(输出结果是5*6矩阵的元素):'); if n>5|n<0 b=a(5:5,:);
disp(['输入行数错误,程序输出最后一行:',num2str(b)]) else
c=a(n:n,:);
disp(['输出结果为:',num2str(c)]) end
3-5 产生20个两位随机整数,输出其中小于平均值的偶数。 程序如下:
x=fix(rand(1,20)*89)+10; x1=fix(sum(x)/20);
disp(['平均数是: ',num2str(x1)]) m=(rem(x,2)==0&x disp(['小于平均数的数是: ',num2str(x(n))]); 3-6 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。 程序如下: 主函数 c=input('请输入20个数:') disp('最大值是:') m=max(c) disp('最小值是:') n=min(c) max函数 function m=max(a[]) m=a(1,20); for i=2:20 if m>a(1,i) m=a(1,i) end end min函数 function n=min(a[]) m=a(1,20); for i=2:20