首先介绍我们要先明白这个算法的原理:
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 //换行
}
}
演示效果如下:
当然, 除了以上介绍的两种方法外, 还有很多其他的方法来实现,建议有机会可以多看些编程的书籍了解下。
望采纳, 谢谢。
C语言程序如下:
#include<stdio.h>
intmain()
{
inta=0//从0开始。
intn//输入的行数,每行的字符数
scanf("%d",&n)
while(n)//括号内n表示n!=0.
{
inti
for(i=0i<ni++)////注意n随着while循环变化的,n在不停的减少,
{
a++
printf(a+"“)//每个字符后面都有一个空格。
}
n--
printf(”\n")//输入一行之后,换行。
}
return0
}
扩展资料:
思路:
输入格式:输入在一行中给出一个正整数n(1≤n≤10)。
输出格式:输出n行由0开始构成的三角形字符阵列。格式见输出样例,其中每个数字后面都有一个空格。需要输出的数字超过9时,重新从0开始循环。
输入样例:7
输出样例:
0123456
789012
34567
8901
234
56
7
#include <stdio.h>int main()
{
int i,j,k
for(i=0i<=4i++)
{
for(j=0j<=3-ij++)
printf(" ")
for(k=0k<=2*ik++)
printf("*")
printf("\n")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)