i try to print from (row, column) but I'm keep getting (row,row) for some reason.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
clf
numberofPlayers=input('Please enter the number of players: ')
guess=0;
count=0;
for i=1:numberofPlayers
name=input('Please enter you name: ','s')
number=randi([1,15])
while guess~=number
guess=input('Please guess a number from 1 to 15: ')
if abs(guess-number)==0
disp('You won!')
count=count+1;
elseif abs(guess-number)==1
disp('You are very close')
count=count+1;
elseif abs(guess-number)==2 || abs(guess-number)==3
disp('You are getting close')
count=count+1;
else
disp('You are not close')
count=count+1;
end
end
str{i}=name;
Guesses(i)= count;
count=0;
end
Names=transpose(string(str));
Attempts=transpose(Guesses);
row=find(Attempts==min(Attempts))
table=[Names,Attempts];
fprintf('Names\t Attempts')
disp(table)
x=numel(row)
fprintf('The winner is %2s with %1s attempts \n',table(row,1),table(row,2))
% Results:
% numberofPlayers = 3
% name = 'Mitch'
% number = 10
% guess = 10
% You won!
% name = 'Pol'
% number = 6
% guess = 6
% You won!
% name = 'Matt'
% number = 8
% guess = 8
% You won!
% row = 3×1
% 1
% 2
% 3
%
% Names Attempts
% "Mitch" "1"
% "Pol" "1"
% "Matt" "1"
% x = 3
% The winner is Mitch with Pol attempts
% The winner is Matt with 1 attempts
% The winner is 1 with 1 attempts
% I'm trying to make it say The winner is Mitch with 1 attempts. The winner is Pol with 1 attempts. The winner is Matt with 1 attempts rather than the above.
0 Kommentare
Antworten (3)
Walter Roberson
am 8 Mai 2021
fprintf('The winner is %2s with %1s attempts \n',table(row,1),table(row,2))
You are using string variables, so this kind of task becomes easier if you switch to compose()
disp(compose("The winner is %2s with %1s attempts \n", table(row,1),table(row,2)))
0 Kommentare
Image Analyst
am 8 Mai 2021
table is a built-in function name. Do not use it as the name of one of your variables. Call it something else, like myMatrix or whatever.
0 Kommentare
Dyuman Joshi
am 8 Mai 2021
You are getting this result because you have defined tables using horinzontal concatenation.
table = [Names,Attempts];
Change it to this and then run your code
table = [Names;Attempts];
2 Kommentare
Dyuman Joshi
am 8 Mai 2021
So you need, [Name1 Attempts1 Name2 Attempts ....] like this? Try
table = reshape([Names;Attempts],1,[])
But if you do this, you will have to adjust your fprintf statement accordingly
Siehe auch
Kategorien
Mehr zu Interactive Control and Callbacks finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!