matlab第三章课后部分答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题三
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 n=find(m); disp(['小于平均数的数是:',num2str(x(n))]); 3-6 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MA TLAB的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