
09.07.2009, 13:31
|
|
Познающий
Регистрация: 26.02.2009
Сообщений: 65
С нами:
9054681
Репутация:
34
|
|
Сообщение от fker
Код:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Код:
#include <iostream>
#include <fstream>
using namespace std;
void Array(int num)
{
int **arr,i=0,j=0,n=1,d=1;
arr=new int*[num];
for(int a=0;a<num;a++)
arr[a]=new int[num];
while(d!=((num/2)+1))
{
for(;i<(num-d);i++,n++)
{
arr[i][j]=n;
}
for(;j<(num-d);j++,n++)
{
arr[i][j]=n;
}
for(;i!=(-1+d);i--,n++)
{
arr[i][j]=n;
}
for(;j!=d;j--,n++)
{
arr[i][j]=n;
}
d++;
if(d==(num/2+1))
{
arr[i][j]=n;
if(num & 1)
{
i++;
n++;
arr[i][j]=n;
}
}
}
char name[80];
up:
cout<<"Вывод в файл. Введите имя\n";
cin>>name;
ofstream file(name);
if(!file) goto up;
for(int a=0;a<num;a++)
{
for(int b=0;b<num;b++)
{
file<<arr[b][a]<<"\t";
}
file<<endl;
}
delete arr;
}
int _tmain()
{
setlocale(0,".1251");
int n;
begin:
cout<<"Введите размерность массива n*n"<<endl;
try{
cin>>n;
Array(n);
}
catch(...){cin.clear(); _flushall();cout<<"Ошибко!!! ):\n"; goto begin;}
system("pause");
return 0;
}
Последний раз редактировалось \\ChaOs//; 09.07.2009 в 16:13..
Причина: Окончательный вариант
|
|
|