Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.87 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. struct coords
  5. {
  6.   int x;
  7.   int y;
  8.   int wartosc;
  9. };
  10. int
  11. addspacetostruct (struct coords **tablica, int n)
  12. {
  13.   struct coords *newtab = malloc ((n + 1) * sizeof (struct coords));
  14.   if (newtab == NULL)
  15.     return -1;
  16.   int h;
  17.   for (h = 0; h < n; h++)
  18.     {
  19.       newtab[h] = (*tablica)[h];
  20.     }
  21.     free (*tablica);
  22.   *tablica = newtab;
  23.   return 0;
  24. }
  25. int
  26. findmax (int **tab2x2, int kol, int rze, struct coords **tabstr)
  27. {
  28.   int g = 0;
  29.   int i;
  30.   int j;
  31.   for (i = 1; i < rze - 1; i++)
  32.     {
  33.       for (j = 1; j < kol - 1; j++)
  34.     {
  35.       if (tab2x2[i][j] > tab2x2[i - 1][j]
  36.           && tab2x2[i][j] > tab2x2[i + 1][j]
  37.           && tab2x2[i][j] > tab2x2[i][j - 1]
  38.           && tab2x2[i][j] > tab2x2[i][j + 1])
  39.         {
  40.           addspacetostruct (tabstr, g);
  41.           (*tabstr)[g].x = i;
  42.           (*tabstr)[g].y = j;
  43.           (*tabstr)[g].wartosc = tab2x2[i][j];
  44.         g++;
  45.         }
  46.     }
  47.     }
  48.     return g;
  49. }
  50.  
  51.  
  52. int **
  53. creatematrix (int kol, int rze)
  54. {
  55.   int **tablica = malloc (rze * sizeof (int *));
  56.   if (tablica == NULL)
  57.     return NULL;
  58.   int i;
  59.   int j;
  60.   for (i = 0; i < rze; i++)
  61.     {
  62.       tablica[i] = malloc (kol * sizeof (int));
  63.       if (tablica == NULL)
  64.     return NULL;
  65.     }
  66.   for (i = 0; i < rze; i++)
  67.     for (j = 0; j < kol; j++)
  68.       tablica[i][j] = ((i * j) % 13);
  69.   return tablica;
  70. }
  71.  
  72. int
  73. main ()
  74. {
  75.   printf ("podaj wymiary tablicy ");
  76.   int j, i;
  77.   int a;
  78.   int b;
  79.   scanf ("%i", &a);
  80.   scanf ("%i", &b);
  81.   int **wskaznik = creatematrix (a, b);
  82.   for (i = 0; i < b; i++)
  83.     {
  84.       for (j = 0; j < a; j++)
  85.     {
  86.       printf ("%4i", wskaznik[i][j]);
  87.     }
  88.       printf ("\n");
  89.  
  90.     }
  91.     struct coords * wskstr;
  92.     int wynik3 = findmax(wskaznik,a,b,&wskstr);
  93.     int t;
  94.     for(t=0;t<wynik3;t++)
  95.     printf(" %4i %4i %4i \n",wskstr[t].x , wskstr[t].y , wskstr[t].wartosc);
  96.   return 0;
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement