Problema visualizzazione a video di una matrice

di il
5 risposte

Problema visualizzazione a video di una matrice

Salve forum questo programma apparentemente semplice mi sta dando problemi,supponendo
di avere un file di testo nel cui primo rigo c'è la dimensione della matrice 4*4 e le righe restanti contengono i valori della matrice..vorrei visualizzare i valori a video(nel main)..ma se lo faccio...mi vengono
visualizzati tipo degli indirizzi con molte cifre al posto degli interi...qualcuno può darmi qualche suggerimento..non so verso quale altro muro sbattere la testa

/*
**
**
** Motivazione.........: Dato un file contenente una matrice di interi
** (le cui dimensioni sono definite dai primi due numeri
** presenti nel file),
** il programma proposto legge
** la matrice di interi e restituisce un vettore
** calcolandone i valori nel seguente modo:
** - viene calcolata la media su tutti i valori
** della matrice;
** - vengono copiati nel vettore di output
** tutti i valori inferiori alla media.
** Il vettore risultante sara' stampato a video
** sotto forma di istogramma (ESATTAMENTE
** come mostrato nell'esempio).
**
**
**
** ESEMPIO:............: CONTENUTO DEL FILE DI INPUT (nome del file "matrice.txt")
** 4 4
** 13 15 23 43
** 7 4 11 0
** 8 4 14 27
** 40 0 1 -2
**
**
** (La media della matrice e' 13.)
**
**
** RISULTATO DELLA COMPUTAZIONE:
**
** Matrice letta
** 13 15 23 43
** 7 4 11 0
** 8 4 14 23
** 40 0 1 2
**
** Vettore risultante
**
** #
** # #
** # #
** # #
** # # # #
** # # # #
** # # # # #
** # # # # # #
** 7 4 0 8 4 0 1 2
**
**
** L'allievo scriva il programma
** in modo da soddisfare le specifiche richieste e
** SENZA MODIFICARE IL CODICE.
**
** Un file "matrice.txt" fornito contiene i dati dell'esempio e puo' essere
** usato per verificare la correttezza del programma sviluppato.
**
*/
#include<stdio.h>
#include<stdlib.h>
int lettura(int mat[][5], int *r, int *c);
float calcolomedia(int mat[][5], int r, int c);
int elimina(int mat[][5], int r, int c, int vett[], float media);
void stampa(int vett[], int dim);
main()
{
int mat[5][5];
int r,c,val,i,j;

val=lettura(mat,&r,&c);

if(val==0)
{
printf("Errore caricamento file.");
return 0;
}

else if(val==1)
{

/*stampa matrice*/
printf("RISULTATO DELLA COMPUTAZIONE\n");
printf("Matrice letta\n");
printf("righe%d,colonne%d\n",r,c);
for(i=0;i<r;i++)
{
for(j=0;j<c;j++);
{
printf("%d\t",mat[j]);
}
printf("\n");
}


}
system("pause");
}
int lettura(int mat[5][5], int *r, int *c)
{
FILE*f;
char nf[15];
int i,j,k;


printf("Inserire il nome del file:");
scanf("%s",nf);
f=fopen(nf,"r");

if ((f!=NULL)&& feof(f)==0)
{
fscanf(f,"%d",r);
fscanf(f,"%d",c);
printf("righe%d,colonne%d",*r,*c);
for(i=0;i<*r;i++)

for(j=0;j<*r;j++)


fscanf(f,"%d",& mat[j]);




return 1;
}
else
return 0;
for(i=0;i<*r;i++)
{
for(k=0;k<*c;k++)
{
if(mat[k]<0)
{
mat[k]=mat[k]*(-1);
}
else
{
}

}
}



}
float calcolomedia(int mat[][5], int r, int c)
{

}
int elimina(int mat[][5], int r, int c, int vett[], float media)
{

}
void stampa(int vett[], int dim)
{

}

5 Risposte

  • Re: Problema visualizzazione a video di una matrice

    Se posti il codice che non funziona potremmo anche aiutarti e corregerlo.
    ma se vuoi che ti facciamo il compito hai sbagliato forum!
  • Re: Problema visualizzazione a video di una matrice

    1)il codice a me non funziona,è già fatto da me e ci ho perso tempo anche se il mio livello di preparazione è basso

    2)ho lasciato le altre funzioni per facilitarti/vi la comprensione della traccia

    3)non ti ho chiesto di risolvermi la traccia,non ci sarebbe sfizio

    3)un pò di gentilezza a volte non fa mai male

    grazie
  • Re: Problema visualizzazione a video di una matrice

    Ti suggerisco di affrontare un problema alla volta. Attualmente non sai se il problema è il caricamento da file oppure la stampa a video. Inizia con lo scrivere una funzione lettura() che carica dei dati fissi, magari quelli dell'esempio che hai commentato all'inizio, così ti assicuri che la stampa della matrice avvenga correttamente e se non è così la metti a posto.
  • Re: Problema visualizzazione a video di una matrice

    In questa linea

    for(j=0;j<c;j++);

    non ci va il ; finale
  • Re: Problema visualizzazione a video di una matrice

    Grazie mille a tutti...i vostri suggerimenti mi hanno aiutato..
    grz oregon,grz candaluar
Devi accedere o registrarti per scrivere nel forum
5 risposte