习题练习
判断成绩区间:小于60为E,70-60为D,70-80为C,80-90为B,90以上为A,用switch方法
解析:换算成小数(除以10就可以换算成小数),向下取整。
方法一
%小于60为E,60-79为D,70-79为C,80-89为B,90-100为A
clc
i=input('输入分数:');
i=i/10;
i=floor(i);
switch i
case 10
fprintf('A\n')
case 9
fprintf('A\n')
case 8
fprintf('B\n')
case 7
fprintf('C\n')
case 6
fprintf('D\n')
otherwise
fprintf('E\n')
end
方法二
clc
clear
score = input('请输入成绩:');
s = floor(score/10);%通过将成绩/10再做一个向下取整,从而实现对成绩这个变量的离散化
switch s
case 10
fprintf('A\n')
case 9
fprintf('A\n')
case 8
fprintf('B\n')
case 7
fprintf('C\n')
case 6
fprintf('D\n')
otherwise
fprintf('E\n')
end
循环结构–for
这个2是步长值,表示循环间隔值
后面的10表示循环次数
案例一:用for循环语句写1+100
%计算1+2+3+...+100=?
clc
clear
s = 0;
for i = 1:100 %for语句会对循环变量进行赋初值的操作,同时指定循环变量的终值和步长值
s = s+i;
end %end语句对循环变量做一个增加,用循环变量+步长值
fprintf('1+2+3+...+100=%d\n',s)
案例二:for+if写1+100
%计算1+2+3+...+100=?
clc
clear
s = 0;
for i = 1:100 %for语句会对循环变量进行赋初值的操作,同时指定循环变量的终值和步长值
s = s+i;
end %end语句对循环变量做一个增加,用循环变量+步长值
fprintf('1+2+3+...+100=%d\n',s)
案例三:用while实现循环语句
while表示在不知道循环次数情况下可使用
%求1+2+3+...+101=?用while实现
clc
clear
i = 1;%i用来进行循环
s = 0;%s用来存储求和的结果
while i <= 101
s = s+i;
i = i+1;%用来对i进行递增,如果没有这条语句,i的结果始终为1
end
fprintf('1+2+3+...+101=%d\n',s)
结果:
方案二:不知道循环次数下使用while
%求1+2+3+...+m=n,n是小于等于100且最接近100的整数
clc
clear
i = 0;
s = 0;
while s+i <= 100
s = s+i;
i = i+1;
end
fprintf('1+2+3+...+%d=%d\n',i-1,s)
习题–生成99乘法表
%生成九九乘法表
clc
clear
for i = 1:9
for j = 1:i
fprintf('%d * %d = %d ',i,j,i*j)
end
fprintf('\n')
end
习题二
有100元,公鸡3元1只,母鸡5元1只,小鸡1元3只,100元正好买100只鸡,问公鸡、母鸡、小鸡各多少只?
cock公鸡 hen母鸡 chicken小鸡
扫描二维码关注公众号,回复:
5098777 查看本文章
%有100元,公鸡3元1只,母鸡5元1只,小鸡1元3只,100元正好买100只鸡,问公鸡、母鸡、小鸡各多少只
clc
clear
for cock = 1:100
for hen = 1:100
for chicken=1:100
if cock + hen + chicken == 100 & cock * 3 + hen * 5 + chicken / 3 == 100
fprintf('公鸡%d只,母鸡%d只,小鸡%d只\n',cock,hen,chicken)
end
end
end
end