View Full Version : [C] Stampa ordinata di matrice
k_mishima
24-01-2007, 15:54
Ciao volevo sapere come stampare una matrice ben incolonnata, vi faccio subito uno screen per farvi capire cosa intendo.
http://img440.imageshack.us/my.php?image=matrice0ij.jpg
Vedete? Più è grande il size, più i numeri sono incolonnati male. Purtroppo accade perchè ci sono negativi e numeri a 1 e 2 cifre.
Qual'è il codice per incolonnarle bene?
Tnx
wingman87
24-01-2007, 16:38
Usa la sprintf, qui ti spiega l'utilizzo:
http://www.cplusplus.com/reference/clibrary/cstdio/sprintf.html
ma se cerchi con google trovi anche altro
k_mishima
24-01-2007, 17:52
mmm, sicuro? Io devo stampare dei numeri di un array 2d, non una stringa
stella_650
24-01-2007, 19:01
Ciao volevo sapere come stampare una matrice ben incolonnata, vi faccio subito uno screen per farvi capire cosa intendo.
http://img440.imageshack.us/my.php?image=matrice0ij.jpg
Vedete? Più è grande il size, più i numeri sono incolonnati male. Purtroppo accade perchè ci sono negativi e numeri a 1 e 2 cifre.
Qual'è il codice per incolonnarle bene?
Ciao.Il tuo problema è legato all'uso della printf, quindi niente di complicato.( devi inserire delle andate a capo e degli spazi in maniera opportuna)
Se "pastavi" il codice con le printf da te realizzate, forse era + semplice agire ed intervenire direttamente sul codice.
stella_650
24-01-2007, 19:10
http://www.mat.uniroma3.it/users/liverani/IN1/20010316c.html
questo potrebbe aiutarti;)
mapomapo
24-01-2007, 20:26
io ho risolto così...non sarà stupendo..ma...
void stampa_matrice(int **a, int x,int y)
{
int i,j;
printf("\n");
printf("\tLa matrice risulterà più o meno così...\n\n");
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
printf("%d\t", a[i][j]);
printf("\n\n");
}
}
la matrice è allocata dinamicamente...quindi forse dovrai cambiare il parametro..
Vito
k_mishima
24-01-2007, 20:48
grazie mille ragazzi ho risolto
for (i=0;i<n_righe;i++)
{
for (j=0;j<n_righe;j++)
printf ("%3d ",array[i][j]);
printf ("\n");
}
In rosso ho messo quello che ho aggiunto grazie a voi. Da quel che ho capito indica le cifre intere da stampare. Infatti ora me li incolonna bene perchè a me servono da 1 a 3 cifre (meno compreso) perchè i numeri da stampare nella matrice vanno da -20 a 20; e con lo spazio dopo la d separo i diversi numeri della stessa riga :D
l'ho visto nel link che ha messo stella_650 http://img118.exs.cx/img118/6574/t1zcheekkiss.gif
mapomapo grazie ma per adesso l'allocazione dinamica il prof non l'ha trattata, se ne parlera' nel secondo semestre :cry:
ma mi hai cmq insegnato lo '\t', non lo conoscevo
wingman87 grazie cmq per l'interessamento, ciao :)
stella_650
25-01-2007, 13:34
Sono contenta che hai risolto;)
l'ho visto nel link che ha messo stella_650
Non era nulla di particolarmente difficile:)
Ciao
trallallero
25-01-2007, 15:47
a questo punto fallo dinamico, é piú elegante ;)
for (i=0;i<n_righe;i++)
{
for (j=0;j<n_righe;j++)
printf ("%*3d ", size, array[i][j]);
printf ("\n");
}
dove size é o definito o const o inserito dall'utente.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.