Simple program but wrong output
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dave Mosooka
le 15 Déc 2016
Réponse apportée : Walter Roberson
le 15 Déc 2016
My program gets three unique points (positive integers) and should rearrange them so they are in order from point 1 to 3 but when I print the variables at the end they are sometimes not in order. My code is pretty straight forward and I think it's obvious what I am trying to do but I must be doing something wrong here?
%get unique points
point1 = randomPoint();
point2 = point1;
point3 = point1;
while point1 == point2
point2 = randomPoint();
end
while point1 == point3 || point2 == point3
point3 = randomPoint();
end
%check ordering
if point1 > point2
temp = point1;
point1 = point2;
point2 = temp;
end
if point2 > point3
temp = point2;
point2 = point3;
point3 = temp;
end
display(point1);
display(point2);
display(point3);
-
function [point] = randomPoint()
%get random points
point = 0; %1, 4, 7, 10, 13, 16, 19, 22, 25, 28
while mod(point, 3) ~= 1 %fall on start of fsm state
point = randi([1,28]);
end
end
Example output: >> run main
point1 =
13
point2 =
10
point3 =
19
0 commentaires
Réponse acceptée
Walter Roberson
le 15 Déc 2016
After you swap point 3 down to point 2, you need to figure out whether it then needs to be swapped down to point 1. Consider for example, [6 5 4] then your first operation would swap to [5 6 4] and your second operation would swap that to [5 4 6] but you need to compare that 5 and 4.
0 commentaires
Plus de réponses (1)
David Barry
le 15 Déc 2016
Instead of:
%check ordering
if point1 > point2
temp = point1;
point1 = point2;
point2 = temp;
end
if point2 > point3
temp = point2;
point2 = point3;
point3 = temp;
end
Try something like:
sortedPoints = sort([point1, point2, point3]);
point1 = sortedPoints(1);
point2 = sortedPoints(2);
point3 = sortedPoints(3);
0 commentaires
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!