Can anybody spot the error in this simple program?
显示 更早的评论
Hey, this is probably going to be very obvious to you guys, but I have written this program to assign grades to students marks, and I can't seem to spot the error, it always seems to give me 'fail' and just keeps repeating fail over and over again!
score = input('What did the pupil score?');
while 100>= score >= 0
if 40>score>=0
disp('Fail');
end
if 50>score>=40
disp('Third');
end
if 70>score>=50
disp('Second');
end
if 100>=score>70;
disp('First');
end;
end;
Thank you in advance!
1 个评论
Daniel Shub
2012-3-21
I always go to http://matlab.wikia.com/wiki/FAQ looking for this question. It surprises me that it is not an FAQ yet.
回答(3 个)
Daniel Shub
2012-3-21
This 100>= score >= 0 doesn't do what you think it does.
100>= score
either evaluates to 0 or 1, so you then compare
0>=0
or
1>=0
which are both true.
Wayne King
2012-3-21
Daniel's absolutely correct. You're writing your inequalities like you would write them on a piece of paper, but MATLAB is a programming language
score = 0;
while (score>=0 && score <= 100)
score = input('What did the pupil score?\n');
if (40>score && score>=0)
disp('Fail');
end
if (50>score && score >=40 )
disp('Third');
end
if (70>score && score>=50)
disp('Second');
end
if (100>=score && score>=70)
disp('First');
end;
end;
1 个评论
Eike
2012-3-21
Since the time of my first C programs I'm waiting for the programming language that allows me to write my inequalities like Edward did... I mean how often do you come across such situations?
Anybody knows a language owning that feature? :)
Edward
2012-3-21
1 个投票
1 个评论
Daniel Shub
2012-3-21
It is easy. Click the triangle next to "0 votes" to upvote and click the big box "accept answer" for the answer that answers your question.
类别
在 帮助中心 和 File Exchange 中查找有关 Downloads 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!