Witam mam do wykonania taki oto program jak w załączniku, udało mi się go zrobić ale mam problemy z punktem B i C. Konkretnie nie wiem jak zrobić sprawdzanie oraz nie działa odczytywanie danych wejściowych jak również zapis do pliku. Dałbyś radę ktoś pomóc?
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
cout<<"Podaj Y X: ";
int Y,X;
cin>>Y>>X;
if((X<=0)||(Y<=0));
int size=Y*X,n=0,y=0,x=0,col=X,width=(int)log10(size)+1,*tb=new int[size];
--X;
--Y;
while((y<=Y)&&(x<=X))
{
for(int i=x;(y<=Y)&&(i<=X);++i) tb[y*col+i]=++n;
++y;
for(int i=y;(x<=X)&&(i<=Y);++i) tb[i*col+X]=++n;
--X;
for(int i=X;(y<=Y)&&(i>=x);--i) tb[Y*col+i]=++n;
--Y;
for(int i=Y;(x<=X)&&(i>=y);--i) tb[i*col+x]=++n;
++x;
}
for(int i=0;i<size;++i)
{
bool f=(i%col);
if((!f)&&(i)) cout<<endl;
cout<<setw(width+f)<<tb[i];
}
return 0;
}