题目描述:
输入正整数 n 、正方形左上角的字母,在屏幕上输出如图所示的由大写英文字母围起的空心正方形。
无论输入的字母是大写或小写,输出的字母均是大写,且字母输出是循环的,即输出 ‘Z’ 后接着输出 ‘A’ 。
(↙表示回车)如输入的左上角字符不是字母,输出“Input error!”
例:输入: 5 m↙ 屏幕输出: M N O P Q↙ N R↙ O S↙ P T↙ Q R S T U↙
测试用例:
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 3 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 4 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 5 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 6 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
代码实现:
#include<stdio.h>
int main()
{
int n;
char c;
scanf("%d %c",&n,&c);
if(!((c>='A'&&c<='Z')||(c>='a'&&c<='z')))
{
printf("Input error!\n");
}
else
{
if(c>='a'&&c<='z')
{
c-=32;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==0||i==n-1||j==0||j==n-1)
{if(c+i+j>'Z')
{
if(j!=n-1)
printf("%c ",c+i+j-26);
else
printf("%c\n",c+i+j-26);
}
else
{
if(j!=n-1)
printf("%c ",c+i+j);
else
printf("%c\n",c+i+j);
}
}
else
{
printf(" ");
}
}
}
}
return 0;
}