#include
#include
#include
#include
void space(int n)//根据需要产生空格
{ int i;
for(i=0;i
}
void main()
{ time_t t,p;char *str;//显示时间
int i,j,n,m,x;// n==> 要输出几行
int arrey[20]={1};//此数组用于处理第n行的值,next用于处理第n+1行的值
int next[20]={1,1,1,1};//此处只要使next[1]=1就可以了,是因为下面next[1]从来没用到过
//而下面的一个for循环却把next[1]付给了arrey[1],若不让next[1]=1,那马他将是一个未知的值
//因而数组下面的值也就被打乱了产生了未知的值。
p=time(&t);
str=ctime(&p);
MessageBox(0,str,"time",0);//信息框
do
{
printf("\n您想显示多少行?输入(要求小于10):");
scanf("%d",&n);
if(n>10)
printf("\n输入错误!要求是一个小于10的数。\n");
}while(n>10);
for(i=1;i<=n;i++)//
{
space(n-i);//如果有n行,那么第i行开始处就有n-i个空格
arrey[i]=1;//设定每一行的最后一个数为1
for(j=1;j<=i+1;j++)//行内循环
{//if判断是不是每行的第一个数或最后一个数,如果是就输出1
if((j==1)||(j-i==1))
{
printf("%3d",arrey[0]);
printf("%3c",' ');
continue;//条件成立就就继续判断计算下一个数值
}
next[j]=arrey[j-1]+arrey[j];
printf("%3d",next[j]);
printf("%3c",' ');
}for(x=1;x
arrey[x]=next[x];
}
printf("\n");
} }
用for循环,前边加上空格就会变成金字塔状的了。
#include
void main()
{
int i,j,k,n;
printf("请输入金字塔的层数:");
scanf("%d",&n);
for(i=0;i
for(j=0;j<(n-1-i);j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
}