//emmmmmm看到这道题没有题解,把自己写的代码贴出来给大家参考一下
//思路比较简单,就是代码量略大。
C++ 代码
#include<stdio.h>
#define N 1000
int main(){
int a,b,c=0;
char aa[N][N];
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
aa[i][j]='0';//数组全部初始化为0,也可以用memset
}
}
scanf("%d",&a);//接受需要打印的层数
b=1+a*4+4;
for(int i=b/2-2;i<=b/2+2;i++)aa[i][b/2]='$';
for(int i=b/2-2;i<=b/2+2;i++)aa[b/2][i]='$';//初始化最内层的十字架
while(c<a)
{
for(int i=0;i<b;i++)
{
for(int j=0;j<b;j++)
{
if(aa[i][j]=='0'&&((aa[i-1][j]=='$'||aa[i][j-1]=='$'||aa[i+1][j]=='$'||aa[i][j+1]=='$'||aa[i-1][j-1]=='$'||aa[i+1][j+1]=='$'||aa[i-1][j+1]=='$'||aa[i+1][j-1]=='$')))
{
aa[i][j]='.';//采用洪泛反复循环,由内向外$和.交替生成
}
}
}
for(int i=0;i<b;i++)
{
for(int j=0;j<b;j++)
{
if(aa[i][j]=='0'&&((aa[i-1][j]=='.'||aa[i][j-1]=='.'||aa[i+1][j]=='.'||aa[i][j+1]=='.'||aa[i-1][j-1]=='.'||aa[i+1][j+1]=='.'||aa[i+1][j-1]=='.'||aa[i-1][j+1]=='.')))
{
aa[i][j]='$';//采用洪泛反复循环,由内向外$和.交替生成
}
}
}
c++;
}
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
aa[i][j]='.';
}
for(int j=b-1;j>b-3;j--)
{
aa[i][j]='.';//把四个角上的符号变成点
}
}
for(int i=b-1;i>b-3;i--)
{
for(int j=0;j<2;j++)
{
aa[i][j]='.';
}
for(int j=b-1;j>b-3;j--)
{
aa[i][j]='.';//把四个角上的符号变成点
}
}
for(int i=0;i<b;i++)
{
for(int j=0;j<b;j++)
{
printf("%c",aa[i][j]);//输出十字图
}
printf("\n");
}
}
哪位大佬告诉我怎么才能把代码放在框里。。。。。
评论框由于支持markdown,所以一打出那个字符就显示为代码框了,您可以查找一下markdown如何添加代码块
前面三个反引号(键盘上的~ 键,如果不是全尺寸键盘,需要查阅一下键盘的组合键),后面三个反引号,代码放在中间就好了
好的 ,谢谢
没事,客气