题目标题:打印十字图 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg) $$$$$$$$$$$$$ $ $ $$$ $$$$$$$$$ $$$ $ $ $ $ $ $$$ $$$$$ $$$ $ $ $ $ $ $ $ $ $ $$$ $ $$$ $ $ $ $ $ $ $ $ $ $ $ $ $$$$$ $ $ $ $ $ $ $ $ $ $ $ $ $$$ $ $$$ $ $ $ $ $ $ $ $ $ $$$ $$$$$ $$$ $ $ $ $ $ $$$ $$$$$$$$$ $$$ $ $ $$$$$$$$$$$$$ 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。 为了能准确比对空白的数量,程序要求对行中的空白以句点(.)代替。 输入格式: 一个正整数 n (n<30) 表示要求打印图形的层数 输出: 对应包围层数的该标志。 例如: 用户输入: 1 程序应该输出: ..$$$$$.. ..$...$.. $$$.$.$$$ $...$...$ $.$$$$$.$ $...$...$ $$$.$.$$$ ..$...$.. ..$$$$$.. 再例如: 用户输入: 3 程序应该输出: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$.$ $.$.$$$.$.$$$.$.$ $.$.$...$...$.$.$ $.$.$.$$$$$.$.$.$ $.$.$...$...$.$.$ $.$.$$$.$.$$$.$.$ $.$...$...$...$.$ $.$$$.$$$$$.$$$.$ $...$.......$...$ $$$.$$$$$$$$$.$$$ ..$...........$.. ..$$$$$$$$$$$$$.. 请仔细观察样例,尤其要注意句点的数量和输出位置。
#include <iostream>
using namespace std;
char arr[9+4*28][9+4*28];
int n;
int l=0,r=0;
void printAll(int l,int r)
{
for(int i=l;i<=r;i++)
{
for(int j=l;j<=r;j++)
{
if (arr[i][j] != '$')arr[i][j]='.';
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
scanf("%d",&n);
r = 9+4*(n-1)-1;//可以取到最大小标
//处理第一行和最后一行
for(int i=2;i<=r-2;i++)
{
arr[l][i]='$';
arr[r][i]='$';
}
//处理第二行和倒数第二行
arr[1][2]='$';arr[1][r-2]='$';
//处理倒数第二行
arr[r-1][2]='$';arr[r-1][r-2]='$';
//处理第三行
arr[2][0]='$';arr[2][1]='$';arr[2][2]='$';arr[2][r]='$';arr[2][r-1]='$';arr[2][r-2]='$';
//处理倒数第三行
arr[r-2][0]='$';arr[r-2][1]='$';arr[r-2][2]='$';arr[r-2][r]='$';arr[r-2][r-1]='$';arr[r-2][r-2]='$';
//处理两边
for(int j=3;j<=r-3;j++)
{
arr[j][0]='$';
arr[j][r]='$';
}
printAll(l,r);
return 0;
}
输出结果:
3
. . $ $ $ $ $ $ $ $ $ $ $ $ $ . .
. . $ . . . . . . . . . . . $ . .
$ $ $ . . . . . . . . . . . $ $ $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ . . . . . . . . . . . . . . . $
$ $ $ . . . . . . . . . . . $ $ $
. . $ . . . . . . . . . . . $ . .
. . $ $ $ $ $ $ $ $ $ $ $ $ $ . .
进程已结束,退出代码0