2011-05-01 5 views
0

Ok Je ne suis pas en train de le comprendre. Je suppose que pour trouver seulement le total de chaque colonne dans la dernière rangée. Trouvez le grand total dans la dernière cellule (le coin en bas à droite) Ok, j'ai essayé de faire le grand -otot mais je ne comprends pas ce qu'elle veut faire J'ai aussi essayé d'inverser les tableaux mais c'était faux. Je suis seulement supposé ajouter deux ligne une ligne est de trouver le total de chaque colonne dans la dernière rangée et de trouver le grandototal. Quelqu'un peut-il m'expliquer s'il vous plaît ce que je fais mal merci.travailler avec des tableaux

Module Module1

Sub Main() 

    Dim sum(5, 4) As Integer 
    Dim row, col As Integer 
    Dim grandtotal As Integer 
    For row = 0 To 4 
     For col = 0 To 3 
      sum(row, col) = row + col 
      sum(row, 4) += row + col 

     Next col 
    Next row 
    For row = 0 To 5 
     For col = 0 To 4 
      Console.Write(sum(row, col) & vbTab) 

     Next col 
     Console.WriteLine() 

    Next row 
End Sub 

End Module

Répondre

1

Il semble que vous avez une assez bonne connaissance du code que vous devez utiliser, mais je pense que la question principale ici est que vous obtenez un peu confondu avec ce que vous voulez réellement que le code fasse. Moi aussi j'ai de la difficulté à décider quel est votre objectif réel, comme vous dites une chose, mais ensuite avoir un code pour quelque chose de légèrement différent. Je suppose que c'est un travail à faire, donc je ne vais pas vous donner le code (d'autant plus que je ne suis pas sûr à 100% du code dont vous pourriez avoir besoin), mais je suis plus qu'heureux de le faire aussi clairement que possible, et j'espère que nous allons aller au fond de votre confusion.

Pour clarifier vos besoins:

  • Vous dites que vous êtes censé trouver le total de chaque colonne, et placez ce total dans la dernière ligne. Selon votre code, ce serait la ligne 5 (en fait la 6ème rangée).
  • Vous dites alors que vous avez besoin du total général dans la dernière cellule, dans le coin inférieur droit. Puisque vous avez 5 colonnes (0-4), ce serait un total des 4 premières colonnes de rang 5.

Si l'on imagine le tableau 2D sum comme une matrice, le problème comme indiqué devrait donner les éléments suivants :

Desired Matrix http://dl.dropbox.com/u/1497850/Hosted%20Images%20for%20Websites/MatrixDesired.jpg

Lorsque le « x de » sont vides (techniquement 0), puisque cette colonne est réservée comme la colonne « grand total » (uniquement en bas à droite doit être rempli). Pour référence, ce tableau/matrice aura les coordonnées suivantes:

Coordinate Matrix http://dl.dropbox.com/u/1497850/Hosted%20Images%20for%20Websites/MatrixCoords.jpg

Cependant, comme vous avez actuellement il codé, votre tableau sum ressemblera à ceci:

Actual Matrix http://dl.dropbox.com/u/1497850/Hosted%20Images%20for%20Websites/MatrixActual.jpg

Qu'est-ce que vous 'fait dans votre code est fait la colonne finale de la "colonne totale" et ignoré la dernière ligne. Dans ce cas, la cellule en bas à droite serait toujours le total général, mais vous comptiez les nombres dans la colonne 4 plutôt que dans la ligne 5. Cela va à l'encontre de ce que vous avez déclaré vouloir, mais il est assez facile à corriger (surtout maintenant que vous pouvez voir ce qui se passe réellement par rapport à ce que vous voulez arriver). Cependant, peut-être que c'est ce que vous vouliez réellement faire, et vous avez mal interprété la question un peu? (Ou peut-être est-ce ce que vous vouliez dire en disant que vous avez essayé d'inverser les tableaux?) Le fait est que les lignes et les colonnes, même les matrices semi-volumineuses sont généralement facilement transposables, il est donc important de vous assurer que vous utilisez terminologie à tout moment.Editer: Désolé, j'ai mal lu votre deuxième For boucle quand j'ai d'abord répondu, je suis désolé. Je vois maintenant que vous imprimez le tableau sum, mais votre problème était probablement dû au fait que vous ne remplissiez pas le tableau comme prévu. Une fois que vous remplissez le tableau comme vous le souhaitez, votre relevé d'impression devrait fonctionner correctement.