例题2.5叠筐

#include<iostream>
using namespace std;

int main()
{
int n;
char x,y;
while(cin>>n>>x>>y)
{
char m[n+1][n+1];
m[(n+1)/2][(n+1)/2]=x; //最中间的 

for(int i=1;i<=(n-1)/2;i++)//一共有几圈 (不算最中间) 
{
char z;//当前圈该输出哪个字符 
if(i%2==0)z=x;
else z=y;

m[(n+1)/2-i][(n+1)/2-i]=z;//左上角
for(int j=1;j<=2*i;j++)
{
m[(n+1)/2-i][(n+1)/2-i+j]=z;
m[(n+1)/2-i+j][(n+1)/2-i]=z;

}

for(int j=1;j<=2*i-1;j++)
{
m[(n+1)/2+i][(n+1)/2+i-j]=z;
m[(n+1)/2+i-j][(n+1)/2+i]=z;
}
m[(n+1)/2+i][(n+1)/2+i]=z;//右下角

}
m[1][1]=' ';
m[1][n]=' ';
m[n][1]=' ';
m[n][n]=' ';
for(int k=1;k<=n;k++)
{
for(int p=1;p<=n;p++)
{
cout<<m[k][p];
}
cout<<endl;
}

cout<<endl;
}

return 0;
 } 


 //首先从里到外按照圈层的规律输出
 //其次把每一圈分为4部分:左上、右下、左半圈、右半圈
 //最后更改最外圈的4个角为空字符
全部评论

相关推荐

07-18 14:34
门头沟学院 Java
感觉招聘要求好高,这都是招什么人才
电气电子小朋友:你都说了这是大疆,无人机顶级企业,薪资30k-50k,要求高是正常的
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务