0
votes

C: Traitement des colonnes d'un tableau 2D

The value of a[0][0] is 0
The value of a[0][1] is 0
The value of a[0][2] is 1
The value of a[0][3] is 0
The value of a[0][4] is -1

4 commentaires

Essayez d'initialiser le tableau avec int A [num_rows] [num_cols] [num_cols] = {{0}}; , et après la boucle, imprimez tout le tableau pour voir ce que la boucle a fait.


Je l'ai fait, mais je n'ai que 0 0 0 0 0 0


Ce n'est pas l'ensemble du tableau. Toute la matrice a 15 entrées.


J'ai posté un autre code voudriez-vous voir la réponse ci-dessous?


3 Réponses :


0
votes

Je pense que vous voulez écrire votre pour code> LOOP comme ceci (en fonction de vos légendes) Pour la première rangée.

for (p = &a[0], i = 0; p < &a[NUM_ROWS] ; p ++) {
    int k = 0; //for the column count
    for(;k < NUM_COLS; i++, k++) {
        (*p)[k] = i;
    }
}


1 commentaires

Si vous voulez analyser une matrice 2-D entièrement et pas seulement la première ligne, veuillez demander aux commentaires que je modifierai ma réponse pour répondre aussi :)



-1
votes
for (p = &a[0]; p < &a[NUM_ROWS]; p++){
for(i=0;i<NUM_COLS;i++){
    (*p)[i]=i;
    printf("%d\n",(*p)[i]); 
// I got 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
}
}
Should I write nested loop to print out all elements of 2D?Is there a way to print out using 1 loop with processing columns of 2D array?

0 commentaires

1
votes

Votre affectation dans la boucle est d'initialiser le premier diagonal: xxx pré>

pour illustrer, voici une adaptation de votre code qui imprime la matrice entière (et l'initialisation): P> xxx pré>

La sortie est la suivante: p> xxx pré>

Notez que les trois éléments de la diagonale principale sont définis sur 0, 1, 2 et le reste sont -1 comme défini par memset () code>. P>

Si vous souhaitez initialiser la première ligne, vous utilisez simplement: P>

for (int i = 0; i < NUM_ROWS; i++)
    a[0][i] = i;


0 commentaires