Salve ho un problema... sto scrivendo un programma sui file di testo che in pratica data una matrice letta in input da file.txt ci stampi a video il valore massimo della matrice e su un file di output la matrice stessa...il programma viene compilato bene ma perchè all'atto della sua esecuzione crasha??? Questo è il mio codice e grazie per le risposte che riceverò
codice:const int max_dim=100; typedef int vettore [max_dim]; typedef vettore matrice[max_dim]; void leggi_mat(matrice, int &, int &, const char*); int ricerca_max(matrice, int, int, vettore); void stampa(matrice, int, int, const char*);codice:#include <stdio.h> #include <stdlib.h> #include "lib.h" int main() { int riga, colo; matrice mat; int massimo; vettore v; leggi_mat(mat, riga, colo, "input.txt"); massimo = ricerca_max(mat,riga,colo, v); printf("il massimo valore della matrice e' /n/n"); printf("%d", massimo); stampa(mat, riga, colo, "output.txt"); system("PAUSE"); return 0; }codice:#include <stdio.h> #include <stdlib.h> #include "lib.h" void leggi_mat(matrice mat, int &riga, int &colo, const char *nomefile) { int i,j; FILE* fp=fopen(nomefile, "r"); if(!fp) { printf("file non trovato impossibile continuare /n/n"); system("PAUSE"); exit(1); } fscanf(fp, "%d", riga); fscanf(fp, "%d", colo); for(i=0;i<riga;i++) for(j=0;j<colo;j++) fprintf(fp, "%d", mat[i][j]); } int ricerca_max (matrice mat, int riga, int colo, vettore v) { int i,j; int posmax; int massimo; for(i=0;i<riga;i++) { posmax=mat[i][0]; for(j=1;j<colo;j++) { if(mat[i][j]>posmax) { posmax=mat[i][j]; v[i]=mat[i][j]; } } } massimo=v[0]; for(i=0;i<colo;i++) { if(v[i]>massimo) massimo=v[i]; } return massimo; } void stampa(matrice m, int riga, int colo, const char *nomefile) { int i,j; FILE* fp=fopen(nomefile, "w"); if(!fp) { printf("file non trovato impossibile continuare /n/n"); system("PAUSE"); exit(1); } for(i=0;i<riga;i++) for(j=0;j<colo;j++) fprintf(fp, "%d", m[i][j]); }

Rispondi quotando