Po skompilowaniu program wyskakuje okno program
przestaje działać siedze nad nim troche i nie moge
znaleźć błędu. Moze ktoś pomoże?
Program ma polegać na zczytaniu z pliku macierzy
5 3
1.00 2.12 2.00
2.30 3.03 4.00
3.55 5.43 56.2
4.30 6.55 77.5
5.60 2.54 2.2
i zapisaniu do pliku macierzy ktorej poszczegolne elementy sa podzielone przez
najwiekszy element macierzy.
#include <stdio.h>
#include <stdlib.h>
FILE *plik1;
FILE *plik2;
int r, c, i, j;
double find_mtx_max(double **tab, int r, int c)
{
double max = tab[0][0];
double x;
for (i =0; i<r; i++)
{
for (j =0; j<c; j++)
{
if(tab[i][j]>max)
{
max = tab[i][j];
}
}
}
return max;
}
int main()
{
if((plik1 = fopen("plik1.txt", "r"))==NULL)
{
printf("Blad, plik o nazwie %s nie istnieje", "plik1.txt");
return 1;
}
if((plik2 = fopen("plik2.txt", "w"))==NULL)
{
printf("Blad, plik o nazwie %s nie istnieje", "plik2.txt");
}
int r, c, i, j;
fscanf(plik1, "%d %d", &r, &c);
double **tab = (double **)malloc(sizeof(double *)*r);
double max = find_mtx_max(tab, r, c);
for (i = 0; i < r; ++i)
{
for (j = 0; j < c; ++j)
{
tab[i][j] /= max;
}
}
for(i=0; i<c; i++)
{
for(j=0; j <r; j++)
{
fprintf(plik2, "%.3lf", tab[j][i]);
}
fprintf(plik2, "\n");
}
for (i = 0; i < c; ++i) free(tab[i]);
free(tab);
fclose(plik1);
fclose(plik2);
return 0;
}