2016-11-24 1 views
1

J'ai un tableau 2d rempli de nombres aléatoires.Déplacement d'éléments dans un tableau 2d

Par exemple:

#define d 4 

int main(void) 
{ 
int a[d][d]; 
int primary[d], secondary[d]; 
size_t i, j; 

srand(time(NULL)); /* fill array with random numbers */ 
for (i = 0; i < d; i++) 
    {for (j = 0; j < d; j++) 
    a[i][j] = rand() % 100; 
    } 

Comment changer les diagonales. Par exemple:

1 0 0 0 2  2 0 0 0 1 
0 3 0 4 0  0 4 0 3 0 
0 0 5 0 0 to 0 0 5 0 0 
0 6 0 7 0  0 7 0 6 0 
8 0 0 0 9  9 0 0 0 8 

tâche est d'imprimer matrice aléatoire de taille d, puis modifier à l'aide de placement du cycle et d'imprimer des diagonales il again.However i`m ne pas obtenir la façon dont le cycle devrait ressembler.

Appréciez tous les indices ou exemples.

+1

Utilisez la même logique que vous avez utilisé pour remplir la matrice, mais avec des boucles renversées et l'impression au lieu de le configurer en une valeur aléatoire. – dreamcrash

+0

Que voulez-vous dire par "utiliser le cycle"? – davmac

Répondre

1

Loop While j < d/2 puis échanger les valeurs:

for (i = 0; i < d; i++) { 
    for (j = 0; j < d/2; j++) { 
     int temp = a[i][j]; 
     a[i][j] = a[i][d - j -1]; 
     a[i][d - j -1] = temp; 
    } 
} 
+0

Dites-nous ce que fait d/2? Et oui, ça a bien fonctionné. – andrewand

+0

Divise d par 2 :), Faites-le avec du papier et un crayon, vous avez seulement besoin d'échanger jusqu'au milieu donnant les décalages gauche et droit. –