fajne

Anonymous
c_cpp
02/21/2026 9:34 PM
2.8 KB
11
Indexable
#include <stdio.h>
#define MAX 30

int liczba();
void wypisz_planse(int tab[MAX][MAX], int n);

static const int ruchy_skoczka[9][2] =
   { {1,2},{-1,2},{1,-2},{1,-2},  {-1,-2}, {2,1}, {-2,1}, {2,-1}, {-2,-1}};
int znajdz_i_wypisz_max(int tab[MAX][MAX], int n);

int main(void)
{
   int tab[MAX][MAX] = {0};
   int n = liczba(4,25);
   int c = znajdz_i_wypisz_max(tab,n);
   wypisz_planse(tab,n);


}
int liczba(int min, int max) {

   int c = 0;
   while (scanf_s("%d", &c) != 1 && c > min && c < max) {
      printf("to nie jest liczba");
   }
   return c;

}
void wypisz_planse(int tab[MAX][MAX], int n) {

   for (int i = 0; i < n; i++) {

      for (int j = 0; j < n; j++) {
         printf("%d_ ", tab[i][j]);
      }
      printf("\n");
   }
}

int ile_odwiedzonych(int x, int y, int tab[MAX][MAX], int rozmiar_tab)
{
    int warunek = 1;
    int ilosc_odwiedzonych_miejsc = 1;
    while(warunek) {
       warunek = 0;
       for (int i=0; i<9; i++)
       {
          int ruch_x = x + ruchy_skoczka[i][0];
          int ruch_y = y + ruchy_skoczka[i][1];
          if (ruch_x > 0 && ruch_x < rozmiar_tab-1 && ruch_y > 0 && ruch_y < rozmiar_tab-1 && tab[ruch_y][ruch_x] == 0) {
             tab[ruch_y][ruch_x] = ilosc_odwiedzonych_miejsc;
             ilosc_odwiedzonych_miejsc++;
             warunek=1;
             x=ruch_x;
             y=ruch_y;
             break;
          }
       }
    }
    return ilosc_odwiedzonych_miejsc;
}
int znajdz_i_wypisz_max(int tab[MAX][MAX], int n) {
   int max = 0;
   int pos[2] = {0,0};
   int tab2[MAX][MAX];

   for (int i = 0; i < n; i++)
      {
      for (int j = 0; j < n; j++)
         {
         int wynik = ile_odwiedzonych(i, j, tab2, n);
         if (max < wynik)
         {
            max = wynik;
            pos[0] = i;
            pos[1] = j;
         }
         for (int x = 0; x < n; x++)
         {
            for (int y = 0; y < n; y++)
            {
               tab2[x][y] = 0;
            }
         }
      }
   }
   ile_odwiedzonych(pos[0], pos[1], tab, n);
   return max;
}
Editor is loading...
Leave a Comment