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
3 Réponses :
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;
}
}
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 :)
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?
Votre affectation dans la boucle est d'initialiser le premier diagonal: 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> 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 Si vous souhaitez initialiser la première ligne, vous utilisez simplement: P> memset () code>. P> for (int i = 0; i < NUM_ROWS; i++)
a[0][i] = i;
Essayez d'initialiser le tableau avec
int A [num_rows] [num_cols] [num_cols] = {{0}}; code>, 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?