👤

Witam, mam taki oto problem, ponieważ mam za zadanie policzyć ilość pól, jaką atakuje Królowa stojąca na określonym miejscu. (C++).

Napisałem o to taki kod:

#include < iostream >

using namespace std;

int ile_wieza(int n, int x, int y) {

return 2 * (n - 1);

}

int ile_goniec(int n, int x, int y) {

return min(x - 1, n - y) + min(x - 1, y - 1) + min(n - x, y - 1) + min(n - x, n - y);

}

int ile_hetman(int n, int x, int y)

{

return ile_wieza + ile_goniec;

}

int main()

{

int w, k, n=8;

cin >> w >> k;

cout << ile_hetman;

}

Ale wyskakuje mi błąd i nic nie działa, więc chciałbym poprosić o pomoc, co można poprawić w tym kodzie? Z góry mega dziękuję.


Odpowiedź :

Odpowiedź:

#include <iostream>

#include <algorithm>

using namespace std;

int ile_wieza(int n) {

   return 2 * (n - 1);

}

int ile_goniec(int n, int x, int y) {

   return min(x - 1, n - y) + min(x - 1, y - 1) + min(n - x, y - 1) + min(n - x, n - y);

}

int ile_hetman(int n, int x, int y) {

   return ile_wieza(n) + ile_goniec(n, x, y);

}

int main() {

   int x, y, n = 8;

   cin >> x >> y;

   cout << ile_hetman(n, x, y);

   

   return 0;

}

Wyjaśnienie:

Poprawiłem Twój kod, kompiluje się teraz i wyświetla wynik. Błędem było to, że przy wywoływaniu funkcji nie podawałeś jej parametrów. Też parametry niektóre były w złej kolejności. Ale już działa i jeśli nie zrobiłeś innych błędów logicznych, to powinno być dobrze