本文共 1981 字,大约阅读时间需要 6 分钟。
习题练习
判断成绩区间:小于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为Aclci=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
方法二
clcclearscore = 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
这个2是步长值,表示循环间隔值
后面的10表示循环次数%计算1+2+3+...+100=?clcclears = 0;for i = 1:100 %for语句会对循环变量进行赋初值的操作,同时指定循环变量的终值和步长值 s = s+i;end %end语句对循环变量做一个增加,用循环变量+步长值fprintf('1+2+3+...+100=%d\n',s)
%计算1+2+3+...+100=?clcclears = 0;for i = 1:100 %for语句会对循环变量进行赋初值的操作,同时指定循环变量的终值和步长值 s = s+i;end %end语句对循环变量做一个增加,用循环变量+步长值fprintf('1+2+3+...+100=%d\n',s)
while表示在不知道循环次数情况下可使用
%求1+2+3+...+101=?用while实现clccleari = 1;%i用来进行循环s = 0;%s用来存储求和的结果while i <= 101 s = s+i; i = i+1;%用来对i进行递增,如果没有这条语句,i的结果始终为1endfprintf('1+2+3+...+101=%d\n',s)
结果:
方案二:不知道循环次数下使用while%求1+2+3+...+m=n,n是小于等于100且最接近100的整数clccleari = 0;s = 0;while s+i <= 100 s = s+i; i = i+1;endfprintf('1+2+3+...+%d=%d\n',i-1,s)
%生成九九乘法表clcclearfor 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小鸡%有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
转载地址:http://fuwzi.baihongyu.com/