Non ci sono trucchi particolari, ma puoi provare a disegnarlo su carta per aiutarti ad individuare un pattern:
Quando stai stampando un asterisco? Nella prima riga, nell'ultima riga, nella prima colonna e nell'ultima colonna.
Quando stai stampando spazio? In tutti gli altri casi.
Dopodiché segui il pattern standard per stampare una matrice:
Infine, metti assieme le due cose.
Se vuoi stampare un + il ragionamento è praticamente identico solo che al posto di essere la prima e l'ultima riga/colonna è semplicemente quella al centro. Se vuoi stampare una \ noterai che l'asterisco lo stampi solo quando la riga è uguale alla colonna. Se vuoi stampare una / (dall'altro verso) il discorso è speculare rispetto al precedente: prima riga e ultima colonna, seconda riga e penultima colonna, terza riga e terzultima colonna, etc... Se vuoi stampare una X combini il ragionamento che hai fatto nei due precedenti. Se vuoi stampare un triangolo rettangolo noterai che il numero di asterischi dipende dalla riga in cui ti trovi e le colonne non sono più importanti. E via dicendo per altre figure.
Codice:
N = 6 contiamo a partire da 0
| 012345
-+-------
0| ******
1| * *
2| * *
3| * *
4| * *
5| ******
Quando stai stampando spazio? In tutti gli altri casi.
Codice:
if (row == 0 || row == 0 || col == N-1 || col == N-1) putc('*');
else putc(' ');
Codice:
for (row = 0; row < N; row++) {
for (col = 0; col < N; col++) {
// stampa cella
}
putc('\n');
}
Se vuoi stampare un + il ragionamento è praticamente identico solo che al posto di essere la prima e l'ultima riga/colonna è semplicemente quella al centro. Se vuoi stampare una \ noterai che l'asterisco lo stampi solo quando la riga è uguale alla colonna. Se vuoi stampare una / (dall'altro verso) il discorso è speculare rispetto al precedente: prima riga e ultima colonna, seconda riga e penultima colonna, terza riga e terzultima colonna, etc... Se vuoi stampare una X combini il ragionamento che hai fatto nei due precedenti. Se vuoi stampare un triangolo rettangolo noterai che il numero di asterischi dipende dalla riga in cui ti trovi e le colonne non sono più importanti. E via dicendo per altre figure.