J'essaie de prendre mon tableau de nombres en fonction d'une variable qui détermine sa taille et le trier.Problème avec le tri par grappe et l'impression sur le côté dans Fortran 95
Le tableau est créé en utilisant les nombres aléatoires de Fortran 95. Cependant, lorsque j'essaie de le trier, je rencontre de gros problèmes. Il compile bien, mais le tableau est imprimé avec beaucoup d'astérisques. En outre, je voulais imprimer mon tableau sur le côté, (par exemple quelque chose comme ceci: 1 2 3 4 etc.) mais j'ai même échoué à le faire. Je me rends compte que cela doit être fait en utilisant Advance = "non" dans une boucle DO, mais apparemment c'est également erroné.
Voici le code que j'utilise. Si quelqu'un veut me faire savoir où je me trompe, je serais très reconnaissant. Merci pour votre temps.
SUBROUTINE Sorter(num, numinteger)
INTEGER, INTENT(OUT):: num(100)
INTEGER, INTENT(IN):: numinteger
DO i=1, (numinteger-1)
min=num(i)
pos=i
DO j=i,numinteger
IF (num(j)<min)THEN
min=num(j)
pos=j
END IF
END DO
temp=num(i)
num(i)=min
num(pos)=temp
END DO
PRINT*, " "
PRINT*, "Sorted Numbers"
DO i=1, numinteger
WRITE(*,23,ADVANCE="NO") num
23 FORMAT (I2)
END DO
END SUBROUTINE
Merci!
J'ai utilisé les 100 num (100) pour indiquer simplement le nombre maximum que le tableau peut aller. Je ne veux pas que mes chiffres soient supérieurs à 2 chiffres en fait. Alors penses-tu que c'est parce que la façon dont je crée les nombres aléatoires est fausse? – EuropaDust
Vous pouvez également modifier votre instruction FORMAT en: FORMAT (I2, 1X) – Jess
L'utilisation de num (i) au lieu de simplement num a fait une énorme différence et a éliminé une grande partie du désordre. Cela fonctionne bien maintenant. Merci beaucoup Jess !!! – EuropaDust