查看完整版本 : [MATLAB数学相关] 求助各位坛友,帮忙解决两道问题。。。
heihakuang
2009-04-13, 17:53
已解决,谢谢hrt兄弟!!!
1.
输入一个百分制成绩,要求输出成绩等级A,B,C,D,E.其中90~100输出A,80~89输出B,70~79输出C,60~69输出D,60分以下E.
要求(1)分别用if和switch语句实现
(2)判断合理性,对不合理成绩输出错误信息
2.
求1到100之间的偶数之和。[/SIZE][/SIZE]
对于第一题,写了个函数M文件如下:
function fscore(x)
if((x>100)||(x<0))
disp('成绩不合理');
else
switch(floor(x/10)) %floor为MATLAB自带的取整函数
case {9,10}
disp('A');
case 8
disp('B');
case 7
disp('C');
case 6
disp('D');
otherwise
disp('E');
end
end
运行的一些结果如下:
>> fscore(101)
成绩不合理
>> fscore(-1)
成绩不合理
>> fscore(90.9)
A
>> fscore(65)
D
对于第二题
程序1:
k=0;
for i=1:100
if(rem(i,2)==0)
k=k+i;
else
continue;
end
end
k
结果为:
k =
2550
程序2:
>> i=2:2:100;
>> sum(i)
结果为:
ans =
2550
关于上面两道题,肯定还有其它方法啦~ ~
加油~ ~
heihakuang
2009-04-13, 21:57
谢谢你,第二题很简单,我明白了。
但是第一题我照着写了个M文件
出现的错误提示是:
??? Input argument "x" is undefined.
Error in ==> baifen2wuji at 2
if((x>100)||(x<0))
是不是我哪里操作错了???
由于没有参数传给x,执行函数M文件就会出现你说的问题。
编写好M文件后,直接保存,不在debug下执行,就不会有问题了。(注意:m文件名要和函数名一样,为fscore)
再在matlab命令窗口中,输入命令:
>> fscore(101)
或
>> fscore(56)
。。。
可得到结果
heihakuang
2009-04-13, 22:40
原来是这样,呵呵,非常感谢
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.