前言
最近我刚刚开始学习c语言的循环部分,接下来我来分享一下用c语言输出一个字母回文金字塔。
题目
输入一个行数来决定输出金字塔的行数,输出一个回文字母金字塔。
示例:
输入:5
输出:
第一次尝试
我第一次的想法是先打印一半的方法打印该金字塔,再打印另一半。代码如下
#inclede<stdio.h>
int main()
{
int b;
int a,h,line;
printf("请输入行数:");
scanf("%d",&a);
for(h=0;h<a;h++)
{
b=65;
for(line=0;line<a;line++)
{
if(line<a-h-1)
{
printf(" ");
}
else
{
printf("%c",b);
b++;
}
}
printf("\n");
}
for(h=0;h<a;h++)
{
b=65+h-1;;
for(line=0;line<a-1;line++)
{
if(line>=h)
{
printf(" ");
}
else
{
printf("%c",b);
b--;
}
}
printf("\n");
}
return 0;
}
可最终结果如下
发现右半部分无法直接拼接到左边。
第二次尝试
采用一行一行输出的办法。代码如下:`
#include<stdio.h>
int main()
{
int i,j,k,line,b,m;
printf("please input a number for line:");
scanf("%d",&line);
for(i=0;i<line;i++)
{
b=65;
for(j=0;j<line-i-1;j++)
{
printf(" ");
}
for(k=0;k<i+1;k++)
{
printf("%c",b);
b++;
}
for(k=i+1,m=b-2;k<2*(i+1)-1;k++)
{
printf("%c",m);
m--;
}
printf("\n");
}
return 0;
}
输出结果如下:
结语
若有大佬可以通过改正使我第一次尝试的代码可行。重赏哦!
邮箱:747851977@qq.com