思路:
保证变量有规律的改变,换个角度思考问题
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
char rice[2*n][2*n];
int i,j;
for(i=1;i<2*n;i++)
for(j=1;j<2*n;j++)
rice[i][j]='.';
//以四条线为基准
//主对角线
int t=0;
i=n;
int k=n-1;//字母
while(k>=0)
{
rice[i-t][i-t]='A'+k;
rice[i+t][i+t]='A'+k;
t++;
k--;
}
//竖线
k=n-1;
t=0;
while(k>=0)
{
rice[i-t][n]='A'+k;
rice[i+t][n]='A'+k;
t++;
k--;
}
//副对角线
t=0;
i=n,j=n;
k=n-1;
while(k>=0)
{
rice[i-t][j+t]='A'+k;
rice[i+t][j-t]='A'+k;
t++;
k--;
}
//横线
k=n-1;
t=0;
while(k>=0)
{
rice[n][i-t]='A'+k;
rice[n][i+t]='A'+k;
t++;
k--;
}
for(i=1;i<2*n;i++)
{
for(j=1;j<2*n;j++)
cout<<rice[i][j];
cout<<endl;
}
return 0;
}