Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct coords
- {
- int x;
- int y;
- int wartosc;
- };
- int
- addspacetostruct (struct coords **tablica, int n)
- {
- struct coords *newtab = malloc ((n + 1) * sizeof (struct coords));
- if (newtab == NULL)
- return -1;
- int h;
- for (h = 0; h < n; h++)
- {
- newtab[h] = (*tablica)[h];
- }
- free (*tablica);
- *tablica = newtab;
- return 0;
- }
- int
- findmax (int **tab2x2, int kol, int rze, struct coords **tabstr)
- {
- int g = 0;
- int i;
- int j;
- for (i = 1; i < rze - 1; i++)
- {
- for (j = 1; j < kol - 1; j++)
- {
- if (tab2x2[i][j] > tab2x2[i - 1][j]
- && tab2x2[i][j] > tab2x2[i + 1][j]
- && tab2x2[i][j] > tab2x2[i][j - 1]
- && tab2x2[i][j] > tab2x2[i][j + 1])
- {
- addspacetostruct (tabstr, g);
- (*tabstr)[g].x = i;
- (*tabstr)[g].y = j;
- (*tabstr)[g].wartosc = tab2x2[i][j];
- g++;
- }
- }
- }
- return g;
- }
- int **
- creatematrix (int kol, int rze)
- {
- int **tablica = malloc (rze * sizeof (int *));
- if (tablica == NULL)
- return NULL;
- int i;
- int j;
- for (i = 0; i < rze; i++)
- {
- tablica[i] = malloc (kol * sizeof (int));
- if (tablica == NULL)
- return NULL;
- }
- for (i = 0; i < rze; i++)
- for (j = 0; j < kol; j++)
- tablica[i][j] = ((i * j) % 13);
- return tablica;
- }
- int
- main ()
- {
- printf ("podaj wymiary tablicy ");
- int j, i;
- int a;
- int b;
- scanf ("%i", &a);
- scanf ("%i", &b);
- int **wskaznik = creatematrix (a, b);
- for (i = 0; i < b; i++)
- {
- for (j = 0; j < a; j++)
- {
- printf ("%4i", wskaznik[i][j]);
- }
- printf ("\n");
- }
- struct coords * wskstr;
- int wynik3 = findmax(wskaznik,a,b,&wskstr);
- int t;
- for(t=0;t<wynik3;t++)
- printf(" %4i %4i %4i \n",wskstr[t].x , wskstr[t].y , wskstr[t].wartosc);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement