这道题目的规则是:
比如输入A,则只输入一行
再如输入C
最后再输入一个J吧
到这里相信大家已经知道要输出的效果是怎么一个效果了吧,没看懂就拿出小笔笔画画很快就清楚了。
一般这种题目,要么输入行数来打印,要么直接输入字母来打印。
下面以输入行数来解:
#include <stdio.h>
int main()
{
int j, k, l, h;
int n;
char c = 'A';
printf("请输入:");
scanf("%d", &n);
//总行数
for(h=1;h<=n;h++)
{
//随着行数的增加,空格的数也随着减少,就会产生一种三角形的感觉
for(j=n;j>h;j--)
printf("%c", 32);
for(k=0;k<h;k++)
printf("%c", k+c);
//第一行只有A不需要倒叙输出,所以从B开始
for(l=h-2;l>=0;l--)
printf("%c",l+c);
printf("\n");
}
return 0;
}
又或者
#include <stdio.h>
int main(void)
{
int n,i,b,c,d;
char ch='A';
printf("请输入你要打印的行数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(b=0;b<n-i;b++)
{
printf("%c",32);
}
for(c=0;c<i;c++)
{
printf("%c",ch++);
}
ch--;
for(d=0;d<i-1;d++)
{
printf("%c",--ch);
}
printf("\n");
}
return 0;
}
最后一种就是直接输入字母的方法
#include <stdio.h>
int main()
{
char i=0, j=0, l=0, d=0;
char ch, n, x;
printf("请输入一个大写字母:\n");
scanf("%C",&ch);
x = 'A';
n= ch- x;//B-A=1,而B为第二位,应为2
for(i=1;i<=n+1;i++)
{
//每换一行,空格减少一个
for(l=0;l<n+1-i;l++)
{
//32是空格
printf("%C",32);
}
for(j=0;j<i;j++)
{
printf("%C",x++);
}
//ABCBA,最后一位的下一位需要减1,就如现在的C后面的B
x--;
for(d=0;d<i-1;d++)
{
printf("%c",--x);
}
printf("\n");
}
return 0;
}
好了,三个代码都能解决问题,大家能理解哪个代码,哪个代码就是最优的代码,正所谓,代码和我有一个能跑就行,哈哈哈,具体怎么写,思路已经写在代码注释里面了,到这里就结束啦,ヾ(•ω•`)o