怎么用c语言输出金字塔图形?

如题所述

可以通过for循环来实现输出金字塔图形。
#include<stdio.h>

void main()
{
int i,j;
for (i=1;i<=3;++i)  // 控制金字塔的层数,本例输出3层,可以改变输出任意层
{
for (j=1;j<=3-i;++j)  // 控制金字塔每层前面输出的空格数
printf(" ");
for (j=1;j<=2*i-1;++j) // 控制金字塔每层需要打印'*'的个数
printf("*");
printf("\n");  // 一层金字塔输出完毕,换行继续输出下一层
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-08-11

利用C语言输出数字金字塔的操作如下:

例子如下:

直接编译,程序输出结果中输入任意数字,如输入数字8,如下图所示:

本回答被网友采纳
第2个回答  推荐于2019-08-07

c语言输出金字塔图形程序如下:

#include <stdio.h>

#include <ctype.h>

#include <stdlib.h>

void main(){
char a;
int i,j,k,l,m,temp;
scanf("%c",&a);
while(isalpha(a))
{
temp=toupper(a)-'A'+1;
for(i=1;i<=temp;i++)
{
for(j=1;j<=temp-i;j++)
printf(" ");

for(k=0;k<i;k++)
printf("%c",'A'+k);

for(l=i;l>0;l--)
{
if(l==1) break;
else printf("%c",'A'+l-2);
}
for(m=1;m<=temp-i;m++)
printf(" ");
printf("\n");
}
break;
}
system("pause");}

拓展资料:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器以及超级电脑等作业平台。

本回答被网友采纳
第3个回答  推荐于2018-04-30

可以通过for循环来实现输出金字塔图形。


具体实现方法可以参考如下程序与注释

#include<stdio.h>
void main()
{
    int i,j;
    for (i=1;i<=3;++i)  // 控制金字塔的层数,本例输出3层,可以改变输出任意层
    {
        for (j=1;j<=3-i;++j)  // 控制金字塔每层前面输出的空格数
            printf(" ");
        for (j=1;j<=2*i-1;++j) // 控制金字塔每层需要打印'*'的个数
            printf("*");
        printf("\n");  // 一层金字塔输出完毕,换行继续输出下一层
    }
}

第4个回答  推荐于2017-10-07
这个你把它当成一个数学题来理解一下,是一个对称图形嘛!!
看成一个坐标把中间位置看成(0,0)点,然后按照|X|+|Y|==Z;的思想去看待这个问题:好好理解!!
例如:A出现的位置是|X|+|Y|==11,B出现的位置是|X|+|Y|==10;然后去解题就OK了
核心代码:

#include<stdio.h>
#include<math.h>
void main()
{
int x,y;//坐标
int shuru;//输入
char shuchu;//输出
scanf("%d",&shuru);
for(x=-shuru+1;x<=shuru-1;x++)//例如输入12,则循环是从-11到11;
{ for(y=-shuru+1;y<=shuru-1;y++)//同上
if(abs(x)+abs(y)<=shuru-1) //如果在输出的图形范围之内
{
shuchu=64+(shuru-(abs(x)+abs(y)));//把数字转换为ASC码,在转换为字符;A的ASC码为64;
printf("%c",shuchu);
}
else //否则输出空格
printf(" ");
printf("\n");//换行
}

}
是否可以解决您的问题?追问

为啥我复制过去编译不出来?运行是空白

本回答被提问者和网友采纳