4个回答
展开全部
首先介绍我们要先明白这个算法的原理:
1、如果有n行,那么第一行前面就需要 n-1 个空格来进行填充(后面的空格可以不用管)。
2、每一行中的数字都是左右对称的打印的。
下面介绍两种实现方法, 希望对你能有帮助。
第一种最简单的写法,便于初学者进行理解,就是直接进行打印:
void printfA()
{
//打印出4行
cout << " 1\n";
cout <<" 121\n";
cout <<" 12321\n";
cout <<"1234321\n";
}
第二种方法,是可唤塌以控制打印行数的:
void printfB()
{
//输入想要打印的行数
int iCount = 0;
cout << string("Input 和余圆the iCount = ");
cin >> iCount;
//打印金字塔型数字
for(int i = 1; i<= iCount; ++i)
{
//打印空格
毁锋 for(int j = 1; j<=iCount - i; ++j)
{
cout << string(" ");
}
//打印数字前半部分
for (int k = 1; k <= i; ++k)
{
cout << k ;
}
//打印数字后半部分
for (int k = i-1; k >0 ; --k)
{
cout << k ;
}
cout << endl; //换行
}
}
演示效果如下:
当然, 除了以上介绍的两种方法外, 还有很多其他的方法来实现,建议有机会可以多看些编程的书籍了解下。
望采纳, 谢谢。
展开全部
#include<stdio.h>
int main()
{
int i,j,k,t;
char a[16];
printf("请输入金字塔字段滚弊符:\n");
for(i=0;i<16;i++)
握族 {
scanf("%c",&a[i]);//输入构成金字塔的字符
}
t=0;//计数器,用备键来累计数组个数
for(i=1;i<=4;i++)
{
for(k=4;k>i;k--)
{
printf(" ");//输出每行前面的空格,形成金字塔
}
for(j=1;j<=2*i-1;j++)
{
printf("%c",a[t]);//输入每行字符
t++;//计数器加1
}
printf("\n");//每行末尾加换行
}
return 0;
}
运行结果:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int i,j,k;
printf("请输入行数");
scanf("%d",&k);
for(i=0;i<k;i++)
{
for(j=0;j<i+1;j++)printf("%d"闭答,j+1);
for(;j>0;j--)printf("%d",j);
printf("启兄\悄态袭n");
}
}
{
int i,j,k;
printf("请输入行数");
scanf("%d",&k);
for(i=0;i<k;i++)
{
for(j=0;j<i+1;j++)printf("%d"闭答,j+1);
for(;j>0;j--)printf("%d",j);
printf("启兄\悄态袭n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询