Ciao a tutti,
Ho provato a scrivere questo codice per stampare una matrice a spirale da 0 a 63 (matrice quadrata 8x8) non capisco perchè non funzione, credo ci sia qualche errore nel ciclo while, perchè provando a stampare i 4 cicli for (senza il while) la matrice la stampa correttamente. Non riesco a capire quale sia il problema :'(
#include <iostream>
using namespace std;
int main() {
int i;
int j;
int l_righe=8;
int l_colonne=8;
int matrice[l_righe][l_colonne];
int zero=0;
int cont=1;
do {
// prima riga della matrice da sx verso dx
for(j=zero;j<l_colonne;j++) {
matrice[zero][j]=cont;
cont++;
}
//ultima colonna della matrice, dall'alto verso il basso
for(i=zero+1;i<l_righe;i++) {
matrice[i][l_colonne-1]=cont;
cont++;
}
//ultima riga della matrice, da dx verso sx
for(j=l_colonne-2;j>=zero;j--) {
matrice[l_righe-1][j]=cont;
cont++;
}
//prima colonna della matrice, dal basso verso l'alto
for(i=l_righe-2;i>zero;i--) {
matrice[i][zero]=cont;
cont++;
}
zero++;
l_colonne--;
l_righe--;
} while (cont==64);
// stampo la matrice
for(i=zero;i<l_righe;i++) {
for(j=zero;j<l_colonne;j++) {
cout<<matrice[i][j]<<" ";
}
cout<<endl;
}
}