Witam mam problem z zadaniem z egzaminu z programowania. Otóż zadanie brzmi: "Dana jest tablica kwadratowa NxN. Napisz program, który dla podanych z klawiatury i j oraz r wypisze wszystkie elementy leżące w odległości r od elementu [i][j]"
zrobiłem taki kod:
{
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void wypelnianie(int **tab,int &n)
{
srand(time(NULL));
for(int i=1;i<=n;i++,cout<<endl)
{
tab[i]=new int[n];
for(int j=1;j<=n;j++)
{
tab[i][j]=rand()%10;
cout<<tab[i][j]<<" ";
}
}
}
void wypisanie(int **tab,int &n,int &i,int &j,int &r)
{
for(int k=i-r;k<=i+r;k++,cout<<endl)
{
for(int l=j-r;l<=j+r;l++)
{
if(k==i-r || k==i+r || l==j-r || l==j+r)
{
cout<<tab[k][l]<<" ";
}
else
cout<<" ";
}
}
}
int main()
{
int n,r,i,j;
int **tab=new int *[n];
cout<<"Podaj n: ";
cin>>n;
cout<<endl;
wypelnianie(tab,n);
cout<<endl<<"Podaj i: ";
cin>>i;
cout<<endl<<"Podaj j: ";
cin>>j;
cout<<endl<<"Podaj r: ";
cin>>r;
wypisanie(tab,n,i,j,r);
return 0;
}
}
lecz jeśli "r" będzie za duże to wywala program. A chciałbym żeby program działał także jeśli podamy i oraz j które znajdują się na rogach a wyświetlą się możliwe elementy sąsiadujące znajdujące się w tej tabeli. Z góry dziękuje :)