how can i write a matlab code to a multple choice question having multiple answers?? say i have to pick out A,B,C,E but excluding D. so far i have this below...
8 次查看(过去 30 天)
显示 更早的评论
n=[A,B,C,E];
for n=input('Enter your answers:');
switch (n);
case 'D'; case 'd';
if n=='D'||n=='d'
disp('wrong answer. Try again please');
fprintf('Your scored mark is zero(0)\n');
break;
end
if n=='A'||n=='a'&& n=='B'||n=='b'&& n=='C'||n=='c'&& n=='E'||n=='e';
disp('correct answers,congratulations!');
break;
end
end
end
2 个评论
Guillaume
2015-7-1
Note that
if n=='A'&& n=='B' ... (the rest does not matter)
will never be true. If n is equal to 'A' it is certainly not equal to 'B'. You probably meant to have || everywhere.
采纳的回答
Nick
2015-7-1
编辑:Nick
2015-7-1
answer = 'n'
while(answer ~= 'd')
in = input('Get input: ','s');
switch lower(in)
case 'a'
disp('Right')
answer = 'a';
case 'b'
disp('Right')
answer = 'b';
case 'c'
disp('Right')
answer = 'c';
case 'd'
disp('Wrong')
answer = 'd';
case 'e'
disp('Right')
answer = 'e';
otherwise
disp('Invalid choice')
answer = 'na';
end
end
You can put a function in the correct cases instead of the disp('Right')answer ='a' so it runs the same function if you wanted to as well
2 个评论
Joseph Cheng
2015-7-1
or you can use logical operands as you are hard coding the answers in or use strmatch or strncmp to check strings
posAns = 'abcde';
n=sort(lower(input('Enter your answers:','s')));
Uanswer = zeros(size(posAns));
for ind = 1:numel(posAns)
Uanswer(ind) = sum(n==posAns(ind));
end
if sum(Uanswer == [1 1 1 0 1])==5
disp('correct answer')
else
disp('wrong')
end
%or other method
if strmatch(n,'abce')
disp('correct answer')
else
disp('wrong')
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Marine and Underwater Vehicles 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!