例题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个角为空字符
全部评论

相关推荐

11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
10-13 13:49
南京大学 财务
饿魔:笑死我了,你简直是个天才
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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