Witam.
Mam problem.
Otóż robie program który musi wczytywać macierz i wektor wyrazow wolnych z pliku, ma byc to dane tak:

10 1 1 1 2
3 20 4 2 1
5 1 40 9 5
2 0 1 10 1
6 2 1 1 20

15
30
60
15
30

i teraz mam funkcje, ktora ma to wczytac...

void czytaj(void)
{
int i,j;
char input[100]; 

FILE *fp;

printf(" Podaj rozmiar macierzy i wektorow: ");
scanf("%d", &n);
n=n+1; //bo obliczenia robimy od 1, a w C mamy tablice od 0 do n, wiec, zeby przsunac

                //tablice, trzeba dodac jeden, 0 pozycja w tablicy bedzie pusta


printf("\n");

macierzA = malloc(n*sizeof(double *));
liniaA = malloc(n*sizeof(double));

for(i=0;i<n+1;i++)
{
         macierzA[i] = &liniaA[i];
}
wektorB = malloc(n*sizeof(double));
wektorX = malloc(n*sizeof(double));

posredniaA = malloc(n*sizeof(double *));
poslinA = malloc(n*sizeof(double));

for(i=0;i<n+1;i++)
{
         posredniaA[i] = &poslinA[i];
}
poswektB = malloc(n*sizeof(double));
//sprawdzamy alokacje pamieci....

if(!macierzA || !liniaA || !wektorB || !wektorX || !posredniaA || !poslinA || !poswektB)
{
         fprintf(stderr,"Nie udalo sie zainicjowac pamieci!!");
         exit(1);
}

printf("Podaj nazwe pliku do odczytu: ");
scanf("%s", input);

if((fp=fopen(input, "r")) == NULL)
{
         fprintf(stderr,"Blad podczas otwierania pliku: %s", input);
         exit(1);
}
for(i=1;i<n+1;i++)
{
         for(j=1;j<n+1;j++)
         {
                 fscanf(fp,"%lf",&macierzA[i][j]);
         }
         fscanf(fp,"\n");
}
fscanf(fp,"\n");

for(i=1;i<n+1;i++)
{
         fscanf(fp,"%lf\n",&wektorB[i]);
}
fclose(fp);
} 

czemu program sie sypie?? wczesniej dziala, ale zle wczytywal macierz, jechal na dol, zamiast jechac najpierw pierwszy wiersz do konca, potem drugi do konca itd.

Prosze o pomoc, to wazny program na zaliczenie :(

Dzieki z góry.
Pozdrawiam.

PS: nizej jest ten sam posta, ale cos mnie wylogowalo... prosze o usuniecie tamtego posta