C语言输出如题所示图案的代码如下:
#include<stdio.h>
int main( )
{
int x
int i,j,k
printf("请输入,需要生成图案的行数(单数):")
scanf("%d",&x)
k=x/2+1
for(i=1i<=ki++)
{
for(j=0j<2*i-1j++)
printf("*")
printf("\n")
}
for(i=k-1i>=1i--)
{
for(j=0j<2*i-1j++)
printf("*")
printf("\n")
}
}
扩展资料:
由题,需要输出这样一个图像,可将其看为一个正三角形与倒三角形的组合。
且对于下图:
*
***
*****
*******
*****
***
*
由行数与*号的关系可得,在对于总行数/2+1的部分,行数*2+1,即为*号的数目,因而得到了前半段图形的代码。
而对于后半部分的倒三角形,其行数可记为,倒数总行数/2...3、2、1行,则可利用循环以及2*行数-1,得到下半部分的图像。
#include<iostream>using namespace std
int main()
{
int n,i,j,k,m
cout<<"input number: "
cin>>n//输入数字金字塔层数n
for( i=0i<n++i) //第一层循环,控制有多少层金字塔
{ for(m=0m<n-i++m) cout<<" "//第二层循环,输出每层的空格。
for(j=i+1j>0--j) cout<<"*"//第二层循环,输出每层左半边数。
for(k=1k<=i++k) cout<<"*"//第二层循环,输出每层右半边数。
cout<<endl//输出每层的换行。
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)