
先用楼主的思路走一遍
#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语言程序输出数字金字塔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)