matlab循环语句问题

我自己写了一段,但是发现不对.请各位帮我看看改如何改在1到12内.假如不是整数提示"需要输入整数"假如输入非数字提示"???".当在12内就运算i=input('Whic... 我自己写了一段,但是发现不对.请各位帮我看看改如何改在1到12内. 假如不是整数提示"需要输入整数" 假如输入非数字提示"???" .当在12内就运算 i = input('Which multiplication table?');if i~=fix(i) disp ('Please enter an integar number only.');elseif i>=1 && i<=12 for x = 1:i; y=i*x; disp('%d x %d=%d',x,i,y); endelseif isnan(i)~=0 disp('???Undefined function or variable');elseif x>12 or x<1disp('Please enter a number from 1 to12.'); end 展开
 我来答
yanglei5658
推荐于2016-02-03 · TA获得超过4756个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:517万
展开全部

有几个问题:

(1)应该先判断输入的是数字还是字符串

(2)逻辑判断中没有“or”,应该用“||”代替

(3)disp函数不能那样用,得先用sprintf,再用disp。

 

改过之后的程序如下:

i = input('Which multiplication table?');
if isnumeric(i)
    if i~=fix(i)
        disp ('Please enter an  integar number only.');
    elseif i>12 || i<1
        disp('Please enter a number from 1 to12.');
    elseif i>=1 && i<=12
        for x = 1:i;
          y=i*x;
          out = sprintf('%d x %d=%d',x,i,y);
          disp(out);
        end
    end
elseif ischar(i)
    disp('???Undefined function or variable');
end

下面贴出运行的结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式