首先介绍我们要先明白这个算法的原理:
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
printf("打印图形一:\n")
for(i=0i<4i++)
{
for(j=4-ij>1j--)
printf(" ")
for(j=0j<i*2+1j++)
printf("%c",j+'A')
printf("\n")
}
printf("\n打印图形二:\n")
for(i=0i<4i++)
{
for(j=4-ij>1j--)
printf(" ")
for(j=0j<i*2+1j++)
printf("%c",i+'A')
printf("\n")
}
printf("\n打印图形三:\n")
for(i=0i<4i++)
{
for(j=4-ij>1j--)
printf(" ")
for(j=0j<i*2+1j++)
printf("%c",'D'-i)
printf("\n")
}
return 0
}