程序本身并不难。用二重循环就可以实现,第枝判纤一个外循环,每一层循环完成一行的输出猛仿,然后分析这一行中要做些什么,每一小步用一个循环完成一行输冲野出内容结束后换行,整个程序就可以了。下面是三个程序的代码和运行的截图:
程序3:
#include"stdio.h"
int main()
{ int i,j
for(i=0i<4i++)
{ for(j=0j<3-ij++)
printf(" ")
for(j=0j<=ij++)
printf(" *")
printf("\n")
}
for(i=2i>-1i--)
{ for(j=0j<3-ij++)
printf(" ")
for(j=0j<=ij++)
printf(" *")
printf("\n")
}
return 0
}
程序4:
#include"stdio.h"
int main()
{ int i,j
for(i=0i<4i++)
{ for(j=0j<3-ij++)
printf(" ")
for(j=0j<=2*ij++)
printf(" *")
printf("\n")
}
for(i=2i>-1i--)
{ for(j=0j<3-ij++)
printf(" ")
for(j=0j<=2*ij++)
printf(" *")
printf("\n")
}
return 0
}
程序5:
#include"stdio.h"
int main()
{ int i,j
for(i=0i<4i++)
{ for(j=0j<3-ij++)
printf(" ")
for(j=0j<=2*ij++)
printf(" *")
for(j=0j<2*(3-i)j++)
printf(" ")
for(j=0j<=2*ij++)
printf(" *")
printf("\n")
}
return 0
}
首先介绍我们要先明白这个算法的原理:
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 n,i,j
scanf("%d",&n) //读入行数
for(i=0i<ni++) 搜此 //共打印n行
{for(j=0j<=ij++) //先打印i个*号
printf("*"弯袜)
for(j=0j<2*(n-i-1)j++) //再打印中间的空格
printf(" ")
for(j=0j<=ij++) //再打印i个*号
printf("*")
printf("\n") //一行结束,换行
} 世闹迅
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)