标签:
题目地址:http://lx.lanqiao.org/problem.page?gpid=T25
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
#include <stdio.h>
int main()
{
char s[150][150];
int i, j, k;
int n;
scanf("%d", &n);
int center=(9+(n-1)*4+1)/2;
s[center][center]=‘$‘;
for(j=center-2; j<=center+2; j++)
s[center][j]=‘$‘;
for(i=center-2; i<=center+2; i++)
s[i][center]=‘$‘; //构造中心十字
int dd=4; int ff=5;
for(i=1; i<=n; i++){
int up=center-dd;
for(j=center-((ff-1)/2); j<=center+((ff-1)/2); j++)
s[up][j]=‘$‘;
int down=center+dd;
for(j=center-((ff-1)/2); j<=center+((ff-1)/2); j++)
s[down][j]=‘$‘;
int left=center-dd;//列
for(k=center-((ff-1)/2); k<=center+((ff-1)/2); k++)
s[k][left]=‘$‘;
int right=center+dd;
for(k=center-((ff-1)/2); k<=center+((ff-1)/2); k++)
s[k][right]=‘$‘;
dd+=2;
ff+=4;
} //打印四个边栏
for(i=1; i<=n; i++){
//构造1个点
int a, b;
a=center-i*2;
s[a][a]=‘$‘; s[a-1][a]=‘$‘; s[a][a-1]=‘$‘;
b=center+i*2;
s[b][b]=‘$‘; s[b][b+1]=‘$‘; s[b+1][b]=‘$‘;
s[a][b]=‘$‘; s[a-1][b]=‘$‘; s[a][b+1]=‘$‘;
s[b][a]=‘$‘; s[b][a-1]=‘$‘; s[b+1][a]=‘$‘;
}
for(i=1; i<=9+(n-1)*4; i++)
{
for(j=1; j<=9+(n-1)*4; j++)
if(s[i][j]==‘$‘)
printf("$");
else
printf(".");
printf("\n");
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/yspworld/p/4746343.html