*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
#include<stdio.h>
void main()
{
int i,j,k,n;
printf("请输入金字塔的层数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<(n-1-i);j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
}
#include<stdio.h>
main()
{
for(int i=0;i<8;i++)
{
for(int j=0;j<=i;j++)
printf("*");
printf("\n");
}
}
#include <stdio.h> void main() { int n=8,i,j,k,m; //n为行数 for(i=1,m=n; i<=n; i++,m--) { for(k=1; k<=m; k++) printf(" "); for(j=1; j<=i; j++) printf("* "); printf("\n"); } }
刚弄了个圆
程序如下:
#include<stdio.h> #include<math.h> void main() { int m,i,y; for(y = 10;y >= -10;y --)//半径为10 { m = (int)(2.5 * sqrt(100 - y * y)); for(i = 1;i < 30 - m;i ++) printf(" "); printf("*"); for(; i < 30 + m;i ++) printf(" "); printf("*\n"); } }
#include<stdio.h>
main()
{
for(int i=0;i<8;i++)
{
for(int j=0;j<=i;j++)
printf("*");
printf("\n");
}
}
我倒,你早说要金字塔的
给你个杨辉三角的吧,这是我初学c的时候做的,就不给你改显示8的了,你自己把输出那里替换成*就可以了。
vc6.0编译的 TC不能用哈,别用错了编译器
#include<stdio.h> #include<time.h> #include<windows.h> void space(int n)//根据需要产生空格 { int i; for(i=0;i<n;i++) printf("%3c",' '); } 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<j;x++)//两个数组各往下移一行,准备进行下一行的运算 { arrey[x]=next[x]; } printf("\n"); }
}
用for循环,前边加上空格就会变成金字塔状的了。