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

 我来答
如也一个两个
2018-05-28 · TA获得超过4000个赞
知道答主
回答量:34
采纳率:0%
帮助的人:5071
展开全部

可以通过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");  // 一层金字塔输出完毕,换行继续输出下一层
}
}

黄先生
2024-12-26 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采... 点击进入详情页
本回答由黄先生提供
帐号已注销
推荐于2019-08-11 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:82万
展开全部

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

例子如下:

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清飞杨
推荐于2019-08-07 · TA获得超过1.5万个赞
知道答主
回答量:25
采纳率:54%
帮助的人:6522
展开全部

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语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器以及超级电脑等作业平台。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
推荐于2018-04-30 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:785万
展开全部

可以通过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");  // 一层金字塔输出完毕,换行继续输出下一层
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绝情qVT4
推荐于2017-10-07 · 超过62用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:152万
展开全部
这个你把它当成一个数学题来理解一下,是一个对称图形嘛!!
看成一个坐标把中间位置看成(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");//换行
}

}
是否可以解决您的问题?
追问
为啥我复制过去编译不出来?运行是空白
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式