【C语言】经典——打印字母金字塔


#include <stdio.h>

int main()
{
    int i,j; //用于计数

    char ch ;
    char ch1 = 'A';//从ch1开始
    char ch2; 

    printf("请输入一个大写字母:");

    ch = getchar();

    for(i = 0; i < ch-'A'+1; i++)   //行数
    {
        for(j = 0; j < ch-'A'+1-i; j++)    //每行的空格数
        {
            printf(" ");
        }

        for(j = 0; j < 2*(i+1)-1; j++)
        {
            if(j <= i)//前半段
            {
                printf("%c",ch1+j); //通过 j++实现字母的递增
                ch2 = ch1+j-1;      //接收累加结束时最大的值
            }

            if(j > i) //后半段
            {
                printf("%c",ch2--); //通过ch--实现递减
            }
            ch1 = 'A';   //重置循环初始值
        }



        printf("\n");

    }





    return 0;
}

注:与其它金字塔题型相比,此题较为复杂一下,在金字塔题型中更有代表性

思路:通过循环控制行数与空格数,再考虑实现字母递增(在考虑递增的同时,尽量不要用控制循环的参数,容易导致循环次数改变此类的错误)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM