matlab循环语句问题
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 14:37:44
matlab循环语句问题
我自己写了一段,但是发现不对.请各位帮我看看改如何改
在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);
end
elseif isnan(i)~=0
disp('?Undefined function or variable');
elseif x>12 or x<1
disp('Please enter a number from 1 to12.');
end
有几个问题:(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下面贴出运行的结果:
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下面贴出运行的结果: