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