#include<stdio.h>
#include<iostream>
using namespace std;
#define PI 3.14
class A{
};
#define N 6
int s[N][N];
int Matrix[8]={2,1,3,4,5,9,8,6};
#define maxsize 100
int a[maxsize][maxsize];
void creat_sz(int m) //创建蛇形矩阵;分为上下两部分,上部分的i=[0,m-1] 下部分 i=[t-m+1,m-1],每列和递增
{
int temp=1;
int i,t,j,x;
for(t=0;t<=m-1;t++){
for(i=0;i<=t;i++){
j=t-i;
a[i][j]=temp++;
}
if(t%2!=0){
for(i=0;i<=t/2;i++){
j=t-i;
x=a[i][j];
a[i][j]=a[j][i];
a[j][i]=x;
}
}
}
for(t=m;t<=2*m-2;t++){
for(i=t-m+1;i<=m-1;i++){
j=t-i;
a[i][j]=temp++;
}
if(t%2!=0){
for(i=t-m+1;i<=t/2;i++){
j=t-i;
x=a[i][j];
a[i][j]=a[j][i];
a[j][i]=x;
}
}
}
}
void display(int n){ //设计函数将对应的蛇形矩阵输出来
int i,j;
for(i=0;i<n;i++){ //当行号i从0到n-1变换时
for(j=0;j<n;j++) //当列号j从0到n-1变换时
printf("%4d",a[i][j] ); //输出对应的二维数组的值
printf("\n\n");
}
}
int main()
{
// float a=3.4;
// a++;
// printf("%f",a);
double *pt=new double;
cin>>*pt;
cout<<PI*(*pt)*(*pt)<<endl;
delete pt;
cout<<sizeof(A)<<endl; //一个字节
cout<<(Matrix+2)[3]<<endl; //[]表示起始地址的第几位。
cout<<*(Matrix+2)<<endl;
system("pause");
int b=1;
int i,j;
for(i=0;i<=N/2;i++) //创建螺旋矩阵,按照规律,分为四个方框,用i控制
{
for(j=i;j<N-i;j++) s[i][j]=b++;
for(j=i+1;j<N-i-1;j++) s[j][N-i-1]=b++;
for(j=N-i-1;j>i;j--) s[N-i-1][j]=b++;
for(j=N-i-1;j>i;j--) s[j][i]=b++;
}
printf("\n\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
printf("%d\t",s[i][j]);
if(j==N-1) printf("\n");
}
creat_sz(5);
display(5);
return 0;
}