Precedente :: Successivo |
Autore |
Messaggio |
el_vin Comune mortale

Registrato: 07/09/08 10:07 Messaggi: 4
|
Inviato: 07 Set 2008 10:12 Oggetto: HELP urgente matrice! |
|
|
Ciao a tutti ragazzi!
sto provando a fare una calcolatrice per matrici in c...dato che il mio livello di programmazione è scarso mi sono subito scontrato con un problema...qual'è il comando per mostrare una matrice sul video con c???
Grazie saluti!!!!!!!!!!! |
|
Top |
|
 |
saetta Eroe in grazia degli dei

Registrato: 25/02/08 11:52 Messaggi: 129
|
Inviato: 07 Set 2008 10:25 Oggetto: |
|
|
beh... definisciti una funzione che stampi in modo formattato la matrice. Per il codice di tale funzione dipende da come l'hai implementata(liste di adiacenza...?)
Comunque non credo che ci siano funzioni di libreria per lo scopo. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 07 Set 2008 10:28 Oggetto: |
|
|
Matrice bidimensionale? |
|
Top |
|
 |
el_vin Comune mortale

Registrato: 07/09/08 10:07 Messaggi: 4
|
Inviato: 07 Set 2008 10:32 Oggetto: |
|
|
grazie delle rapide risposte!
allora io semplicemente l'ho implementata con un array...le dimensioni di righe e colonne non le ho impostate ho solo messo un massimo di 100...
so che il c++ mostra subito la matrice facendo cout<<array[][]>> e speravo si potesse fare anche con il c...
scusami saetta ma non ho idea di come si faccia a stampare in modo formattato matrice! |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 07 Set 2008 11:28 Oggetto: |
|
|
el_vin ha scritto: | allora io semplicemente l'ho implementata con un array... | Sì, ma mono, bi, tridimensionale o cosa?
E rappresentano una matrice bidimensionale? |
|
Top |
|
 |
el_vin Comune mortale

Registrato: 07/09/08 10:07 Messaggi: 4
|
Inviato: 07 Set 2008 11:31 Oggetto: |
|
|
scusa hai ragione...bidimensionale... questa è la mia prova...
Codice: |
case 1:
printf("Inserisci dimensioni prima matrice:\nRighe:");
scanf ("%d",&r1);
printf("Colonne:");
scanf ("%d",&c1);
printf("Inserisci dimensioni seconda matrice:\nRighe:");
scanf ("%d",&r2);
printf("Colonne:");
scanf ("%d",&c2);
if (r1==r2)
{
if (c1==c2)
{
inserimento1();
inserimento2();
for (i=0;i<r1;i++)
{
for (j=0;j<c1;j++)
{
Ris [i][j]=A[i][j]+B[i][j];
printf( "%d",Ris[i][j]);
printf ("\n");
}
}
}
|
inserimento 1 e 2 servono per prendere i dati della matrice...
cosi xo visualizzo solo una colonna di zeri... |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 07 Set 2008 11:34 Oggetto: |
|
|
Perché solo una colonna?
Non ti cicila su i ? |
|
Top |
|
 |
el_vin Comune mortale

Registrato: 07/09/08 10:07 Messaggi: 4
|
Inviato: 07 Set 2008 11:40 Oggetto: |
|
|
quello che mi chiedo pure io...
facendo un po di prove l'ho notato che il mio problema è nel non saper stampare l'array.... ossia questo comando errato
printf( "%d",Ris[i][j]);
se aggiungo un altro %d nel printf mi visualizza due colonne... tuttavia con risultati assurdi...ma il programma mi sembra giusto... |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 07 Set 2008 18:03 Oggetto: |
|
|
Ciao,
per stampare a video una matrice puoi fare così:
Codice: |
...
void main()
{
int mat[100][100];
int i,j;
int r,c;
...
for (i=0;i<r;++i)
{
for (j=0;j<c;++j)
printf("%d",mat[i][j]);
printf("\n");
}
}
|
r e c sono rispettivamente il numero di righe e colonne, mat è la matrice.
i puntini indicano le operazioni per leggere e inizializzare la matrice.
Di fatto, per ogni riga (il ciclo sulla i) stampi i valori delle celle facendo variare le colonne (ciclo sulla j).
Quando ha finito di stampare la riga, fai una printf che manda a capo e cambi riga.
In c++ è uguale solo che usi cout al posto di printf; cout<<mat[i][j]; stampa la cella i,j della matrice.
Ora il problema è quello di formattare l'output per non avere le righe sfasate.
Potresti mettere prima di ogni numero ("%d") un tab "\t" oppure se usi dei valori float (che avrebbe più senso) puoi usare i formati del tipo "%6.2f",ad esempio, che signifa 6 posti di cui 2 decimali.
Sarebbe anche il caso di usare memoria dinamica per le matrici piuttosto che creare una dimensione massima. |
|
Top |
|
 |
|