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...
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Guillaume
le 1 Juil 2015
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.
Réponse acceptée
Nick
le 1 Juil 2015
Modifié(e) : Nick
le 1 Juil 2015
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 commentaires
Joseph Cheng
le 1 Juil 2015
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
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!