2011-04-11 1 views
0

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!

Répondre

2

Vous n'avez aucun espace entre vos numéros, mais vous êtes également en boucle sur le tableau, mais sans incrémenter un index ... vous demandez à l'ordinateur d'imprimer l'ensemble du tableau sur chaque interaction.

Je pense que cela devrait être: écrire (*, 23, ADVANCE = "NON") num (i)

+0

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

+0

Vous pouvez également modifier votre instruction FORMAT en: FORMAT (I2, 1X) – Jess

+1

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