永发信息网

用C語言如何編寫程序輸出以下圖形

答案:5  悬赏:40  手机版
解决时间 2021-05-05 01:30
  • 提问者网友:风月客
  • 2021-05-04 19:53

*

* *

* * *

* * * *

* * * * *

* * * * * *

* * * * * * *

* * * * * * * *

最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-05-04 20:09

#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");
}
}

全部回答
  • 1楼网友:鱼芗
  • 2021-05-05 01:10

#include<stdio.h>

main()

{

for(int i=0;i<8;i++)

{

for(int j=0;j<=i;j++)

printf("*");

printf("\n");

}

}

  • 2楼网友:孤老序
  • 2021-05-05 00:10

#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"); } }

  • 3楼网友:舊物识亽
  • 2021-05-04 22:34

#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"); }

}

  • 4楼网友:轻雾山林
  • 2021-05-04 20:55

用for循环,前边加上空格就会变成金字塔状的了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯