. . $ $ $ $ $ . .
. . $ . . . $ . .
$ $ $ . $ . $ $ $
$ . . . $ . . . $
$ . $ $ $ $ $ . $
$ . . . $ . . . $
$ $ $ . $ . $ $ $
. . $ . . . $ . .
. . $ $ $ $ $ . .
. . $ $ $ $ $ $ $ $ $ . .
. . $ . . . . . . . $ . .
$ $ $ . $ $ $ $ $ . $ $ $
$ . . . $ . . . $ . . . $
$ . $ $ $ . $ . $ $ $ . $
$ . $ . . . $ . . . $ . $
$ . $ . $ $ $ $ $ . $ . $
$ . $ . . . $ . . . $ . $
$ . $ $ $ . $ . $ $ $ . $
$ . . . $ . . . $ . . . $
$ $ $ . $ $ $ $ $ . $ $ $
. . $ . . . . . . . $ . .
. . $ $ $ $ $ $ $ $ $ . .
. . $ $ $ $ $ $ $ $ $ $ $ $ $ . .
. . $ . . . . . . . . . . . $ . .
$ $ $ . $ $ $ $ $ $ $ $ $ . $ $ $
$ . . . $ . . . . . . . $ . . . $
$ . $ $ $ . $ $ $ $ $ . $ $ $ . $
$ . $ . . . $ . . . $ . . . $ . $
$ . $ . $ $ $ . $ . $ $ $ . $ . $
$ . $ . $ . . . $ . . . $ . $ . $
$ . $ . $ . $ $ $ $ $ . $ . $ . $
$ . $ . $ . . . $ . . . $ . $ . $
$ . $ . $ $ $ . $ . $ $ $ . $ . $
$ . $ . . . $ . . . $ . . . $ . $
$ . $ $ $ . $ $ $ $ $ . $ $ $ . $
$ . . . $ . . . . . . . $ . . . $
$ $ $ . $ $ $ $ $ $ $ $ $ . $ $ $
. . $ . . . . . . . . . . . $ . .
. . $ $ $ $ $ $ $ $ $ $ $ $ $ . .
/*
问题描述:
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式:
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式:
对应包围层数的该标志。
样例输入1:
1
样例输出1:
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2:
3
样例输出2:
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示:
请仔细观察样例,尤其要注意句点的数量和输出位置。
*/
#include <stdio.h>
int main(){
int a[125][125]={0},i,j,k,n,cen;
scanf("%d",&n);
cen=2*n+3;//通过观察样例图形找出的规律
a[cen-2][cen]=a[cen-1][cen]=1;
for(i=3;i<=cen;i=i+2)
a[i][i]=1;
for(i=2;i<=cen-3;i=i+2)
a[i][i+1]=1;
for(i=1;i<cen-2;i=i+2)
for(j=i+2;j<=cen;j++)
a[i][j]=1;//左边8分之一图形
/*把图形拆分成几个部分,每一个部分一个一个解决,有重复的用8分之一,后来再覆盖即可,同时只找有规律的"$"而不是".",方便用循环*/
for(i=1;i<=cen;i++)
for(j=i;j<=cen;j++)
a[j][i]=a[i][j];
for(i=1;i<=cen;i++)
for(j=1;j<=cen;j++)
a[i][2*cen-j]=a[i][j];
for(i=1;i<=cen;i++)
for(j=1;j<=2*cen-1;j++)
a[2*cen-i][j]=a[i][j];
for(i=1;i<=2*cen-1;i++)
for(j=1;j<=2*cen-1;j++){
if(a[i][j]==1)
printf("$");//用1,找有规律的"$",而不是去找".",用1,如果是1,输出,而不一定用char装"$"与"."
else
printf(".");
if(j==2*cen-1)
printf("\n");
}
return 0;
}
输出图形
最新推荐文章于 2021-12-19 13:05:55 发布