劳动光荣 动

题目描述
由键盘输入一个大写字母(A 到 Z 中的任意一个),输出如下图所示由相关大写字母组成的图形。所输入的字母一定为输出文件的第一个字符(位于图形的左上角),其余部分的字母构成规律和分布由样例给出。

一些关于空白的说明:由于样例不是等宽字符,所以看起来比较丑陋。

51nod并不对比答案中的空白,所以只需要正确输出每行的内容即可。

如果你打算正确输出所有内容,需注意,每行行末没有不可见的空格。

输入格式
输入只有一行,仅为一个大写英文字母。

输出格式
输出文件包含一个如样例所示的图形。注意图形的行数与输入的字母有关,图形的第一行最左侧一定是你输入的那个字母。

样例输入
E

样例输出
EDCBAABCD
DCBAABC
CBAAB
BAA
A

思路
分两个部分输出…CBA,ABC…,空格一行比一行多。

坑点
巧用ASCII码

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	char a;
	cin>>a;
	int k=0;
	for(int i=0;i<=a-65;i++)
	{
    
    
		int z=a;//Z表示从A到当前字母共有几个。 
		for(int j=0;j<k;j++)
		{
    
    
			printf(" ");
		}
		for(int j=z-k;j>=65;j--)//利用ASCII码进行转换。 
		{
    
    
			printf("%c",j);
		}
		for(int j=65;j<z-k;j++)//同上 
		{
    
    
			printf("%c",j);
		}
		z--;
		k++;//表示有多少行 
		printf("\n");
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Autumn_snow/article/details/116357643
今日推荐