淘先锋技术网

首页 1 2 3 4 5 6 7

这道题目的规则是:

比如输入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