c语言字母金字塔怎么输出如下图

c语言字母金字塔怎么输出如下图,第1张

先用楼主的思路走一遍

#include "stdioh"

void main()

{

char zm[36]={'A','B','C','D','E','F','G','H','I','J','K','L','M',

'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'};

int i,j=0,k,z;                  //记住赋初始值

for(i=0;i<8;i++)                 //不是10

{        

for(k=6-i;k>=0;k--)           //改为6

printf(" ");

for(z=0;z<i+1;z++)     //用Z来循环 ,j自主加就行,之前方法会自动归零

{

printf("%c",zm[j]);

if(z<i)

printf(" ");

j++;                               //自主累加就行

}

printf("\n");

}

}

这个程序还有很多改进方式

1,数组可以去掉,直接用char输出,j初始值等于 65,判断j>90时j=48,

#include "stdioh"

void main()

{

char j=65;

int i,k,z;

for(i=0;i<8;i++)

{

for(k=6-i;k>=0;k--)

      printf(" ");

for(z=0;z<i+1;z++)

{

 printf("%c",j);

 if(z<i)

 printf(" ");

  if(j<90)

 j++;

 else

 j=48;

}

printf("\n");

}

}

2,用j作主循环会好点,根据j判断i 会减少一层循环

#include "stdioh"

void main()

{

char j=1;

int i=1,k=1,s=1;

while(i<=8)

{

if(k<9-i)

{

printf(" ");

k++;

}

else

{

 if(j<=s)

 { if(j<=26)

    printf("%c ",j+64);

    else printf("%c ",j+21);

   j++;

 }

 else

 {printf("\n");

  i=i+1;

  s=s+i;

  k=1;

  }

}

}

}

#include<stdioh>

#include<stdlibh>

main()

{

int i,j,k,a;

printf("请输入层数:");

scanf("%d",&a);

for(i=1;i<=a;i++)

{

for(k=1;k<=a-i;k++)

printf(" ");

for(j=1;j<=2i-1;j++)

{

printf("%d",i);

}

printf("\n");

}

system("pause");

}

这个是金字塔形的!!!

给,已经编译运行通过:

#include<conioh>

#include<stdioh>

void main()

{

int n;//这个就是定义的你需要输出的行数

int i,j;

printf("please input the n: ");

scanf("%d",&n);//输入需要输出的行数

for(i=0;i<n;i++)

{

for(j=0;j<2(n-1-i);j++) printf(" ");

for(j=0;j<=i;j++) printf("%d",j+1);

for(j=0;j<2i-1;j++) printf(" ");

for(j=i+1;j>0;j--)

{

if(i==0) break;

printf("%d",j);

}

printf("\n");

}

getch();

}

推荐答案有错误,其输出结果为:

A

B B

C C C

而你要的是:

A

B B B

C C C C C

回答者: linghuxiaocong 的也不对,缺少输入

我把推荐的改了下,符合你的要求

#include<stdioh>

int main()

{ int i,j,n;

scanf("%d",&n);

while(n>=1)

{if(n>26)n=26;

for(i=1;i<=n;i++)

{for(j=1;j<=n-i;j++)printf(" ");

for(j=1;j<=2i-1;j++)printf("%c ",i+'A'-1);

printf("\n");}

scanf("%d",&n);

}

system("PAUSE");

}

已经验证过了:

#include<stdioh>

#define num 5 /修改这个数字来改变金字塔的层数/

void main()

{

for(int n=1;n<=num;n++)

{

for(int j=num-n;j>0;j--)

{

printf(" ");

}

for(int i=0;i<n;i++)

{

printf(" ");

}

printf("\n");

}

}

双重循环

#include <stdioh>

#include<stdlibh>

 

void PrintPyramid(char c);

 

 main()

    char n;

 

    printf("Please input a capital:\n");

    scanf("%c",&n);

    PrintPyramid(n);

 

    system("pause");

 }

 

//函数功能:输出金字塔

 void PrintPyramid(char c)

 {

    int i=65 , j ;

 

    //第一重循环 :控制行的数量

    for(;i<=c;i++)

    {

        //第二重循环1:控制顺序输出ABC(即前n位字母

        for(j=65;j<=i;j++)

            printf("%c",j);

 

        //第二重循环2:控制逆序输出BA(即后n-1位字母)

        for(j=i-1;j>=65;j--)

            printf("%c",j);

 

        printf("\n");

    }

 }

#include<stdioh>

int main()

{

    int f,d;

int c,e,x,y;

char a,b;

scanf("%c %d %c %d",&a,&f,&b,&d);

for(c=1;c<=f;c++)

{

     for(x=1;x<=f-c;x++)

printf(" ");

 for(y=1;y<=2c-1;y++)

printf("%c",a);

 printf("\n");

}

for(e=d;e>=1;e--)

{

     for(x=1;x<=d-e;x++)

printf(" ");

 for(y=1;y<=2e-1;y++)

printf("%c",b);

 printf("\n");

}

return 0;

}

以上就是关于c语言字母金字塔怎么输出如下图全部的内容,包括:c语言字母金字塔怎么输出如下图、c语言程序 数字金字塔、c语言程序输出数字金字塔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9359490.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存