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)
{
}