Description
输出形如
ABCDEDCBA
ABCDCBA
ABCBA
ABA
A
的字母三角形。
输入有多个样例,每个样例是一行,每行是一个大写字母。当输入字符是‘#’时结束。样例前需要输出“case 样例号:”。如示例所示。
Sample Input
C
D
Sample Output
case 1:
ABCBA
ABA
A
case 2:
ABCDCBA
ABCBA
ABA
A
Source
用到了while和for循环,还有一点数学思想
#include <stdio.h>
int main()
{
char a;
int count=1;
while(scanf(" %c",&a)&&a!='#')//%c前必须要一个空格。如果没有加,那么"Enter"将会作为第二个情况,进行标准流输入。即你输入一个字母,又按下回车,相当于两种情况了。如果不懂,就百度。这个说法不能够让所有人理解的。
{
int n=a-65,i,j;//大写字母A的ascii值为65
printf("case %d:\n",count);//情况输出
count++;
for(i=0;i<=n;i++)//一共要有输出n+1行
{
//每行的输出内容
for(j=0;j<i;j++)//输出空格
{
printf(" ");
}
for(j=0;j<=n-i;j++)//最中间字母及前段字母的输出
{
printf("%c",'A'+j);
}
for(j=1;j<=n-i;j++)//后段字母的输出
{
printf("%c",a-j-i);
}
printf("\n");//行末要换行
}
continue;
}
return 0;
}
getchar()也可以存储回车键,%c就不用加空格了。如下
#include <stdio.h>
int main()
{
char a;
int count=1;
while(scanf("%c",&a)&&a!='#')
{
getchar();
int n=a-65,i,j;//大写字母A的ascii值为65
printf("case %d:\n",count);//情况输出
count++;
for(i=0;i<=n;i++)//一共要有输出n+1行
{
//每行的输出内容
for(j=0;j<i;j++)//输出空格
{
printf(" ");
}
for(j=0;j<=n-i;j++)//最中间字母及前段字母的输出
{
printf("%c",'A'+j);
}
for(j=1;j<=n-i;j++)//后段字母的输出
{
printf("%c",a-j-i);
}
printf("\n");//行末要换行
}
continue;
}
return 0;
}
写于2021年8月9日22:30分。
自己多敲几遍。重在独自思考。