Wypisanie macierza z pliku

0

Napisz program,który zapisz edo pliku macierz o wymiarach 4×4,a następnie ją odczyta i wypisze na ekran. Wartości elementów macierz powinny być losowane z przedziału (−10,10). Zarówno w pliku, jak i na ekranie macierz ma być podzielona na wiersze.

http://wklej.to/LXdHG
Zapisuje macierz do pliku ale nie wiem jak wyświetlić na ekranie.

1
fscanf(zw, "%d", &tab[N][M]); 

Czyli wczytujesz daną poza tablicę... Takie miejsce wsam raz na bum...

0

Nie mam pojęcia jak to poprawić...
\\edit
http://wklej.to/Sl2yA
Użyłem pętli i działa dziękuje za pomoc.

1
  1. Zapoznaj się z pojęciem formatowania kodu: http://4programmers.net/Forum/998482
  2. Nie nadużywaj postinkrementcaji: http://4programmers.net/Forum/1101404 to: for(i=0;i<N;++i) zadziała dokładnie tak samo jak to: for(i=0;i<N;++i) w sensie wartości i
  3. Używaj sensownego nazewnictwa, bo za chwile nie będziesz wiedział czy i leci po M czy po N
  4. funkcja nic nie zwracająca powinna deklarować zwracany typ jako void

W sumie ma być coś na kształt:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define Ysize 4
#define Xsize 4

void tbRand(unsigned tb[])
  {
   size_t i;
   for(i=0;i<Ysize*Xsize;++i) tb[i]=1+rand()%9; // rozumiem że chcesz w granicach 1..9
  }

void tbShow(unsigned tb[])
  {
   size_t i,y,x;
   for(i=y=0;y<Ysize;++y,printf("\n")) for(x=0;x<Xsize;++x,++i) printf(" %d",tb[i]);
   printf("\n");
  }

int tbWrite(const char *fileName,unsigned tb[])
  {
   size_t i,y,x;
   FILE *wr=fopen(fileName,"w");
   if(!wr) return 0;
   for(i=y=0;y<Ysize;++y,fprintf(wr,"\n")) for(x=0;x<Xsize;++x,++i) fprintf(wr," %d",tb[i]);
   fclose(wr);
   return 1;
  }

int tbRead(const char *fileName,unsigned tb[])
  {
   size_t i,y,x;
   FILE *rd=fopen(fileName,"r");
   if(!rd) return 0;
   for(i=y=0;y<Ysize;++y) for(x=0;x<Xsize;++x,++i) fscanf(rd,"%d",&tb[i]);
   return !feof(rd);
  }

int main()
  {
   unsigned A[Ysize*Xsize],B[Ysize*Xsize];
   tbRand(A);
   tbShow(A);
   if(!tbWrite("data.txt",A)) printf("Nie udalo sie zapisac\n");
   if(!tbRead("data.txt",B)) printf("Nie udalo sie odczytac\n");
   tbShow(B);
   return 0;
 }

1 użytkowników online, w tym zalogowanych: 0, gości: 1