Tablice dwuwymiarowe

0

Napisz algorytm oraz program, który utworzy tablicę A według poniższego modelu (jedynki znajdują się na polach atakowanych przez hetmana szachowego umieszczonego na polu P).

WEJŚCIE:
n – liczba wierszy tablicy A (liczba naturalna n>1),
m – liczba kolumn tablicy A (liczba naturalna m>1),
x, y – indeksy pola P [x][y] (pole P jest elementem tablicy A).

WYJŚCIE:
k – liczba jedynek w tablicy A.

0 0 1 0 1 0 1
0 0 0 1 1 1 0
1 1 1 1 P 1 1
0 0 0 1 1 1 0
0 0 1 0 1 0 1

z góry dzięki

int main()
{
  char A[101][51];
  int P,n,m,x,y;

 do
 {
  cout<<"Podaj liczbe wierszy (nie wiecej niz 100): ";
  cin>>n;
 } while ((n<1)||(n>100));
 do
 {
  cout<<"Podaj liczbe kolumn (nie wiecej niz 50): ";
  cin>>m;
 } while ((m<1)||(m>50));
 for(x=1;x<=n;x++)
  for(y=1;y<=m;y++)
  {
  {
   cout<<"Podaj element A["<<x<<"]["<<y<<"]: ";
   cin>>A[x][y];
   }

}
for(x=1;x<=n;x++)
{
  for(y=1;y<=m;y++)
    {
       cout<<A[x][y]<<" ";
    }
    cout<<endl;
}


    return 0;
}

tu moje ale nie automatyczne

0

Zapomniałeś napisać co ci nie działa, co chcesz zrobić. Pomijając, że kod jest źle sformatowany, widzę, że chcesz wczytać tablicę, którą masz wygenerować. Swoją drogą, żeby rozwiązać to zadanie, wcale nie potrzebujesz alokować żadnej tablicy. Wystarczy, że w pętli, dla kolejnych par współrzędnych obliczysz czy pole jest zajmowane przez hetmana, atakowane, lub nie. Od tego należałoby zacząć, od napisania funkcji, isAttacked(Point queenPos, Point checkedPos){...}, gdzie struct Point{ uint x, y; }.

0

To mi wygląda na zadanie pod automatycznego sędziego więc nie rób żadnych innych smarowań po konsoli oprócz tego co napisano w rubryce wyjście.
Z algorytmiką masz na baker.

#include <iostream>
#include <iterator>
#include <cmath>
using namespace std;

int main()
{
	istream_iterator<int> iis(cin);
	int Y=*iis-1,X=*++iis-1,y=*++iis,x=*++iis;
	cout<<(Y+X+min(y,x)+min(y,X-x)+min(Y-y,x)+min(Y-y,X-x))<<endl;
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1