导航:首页 > 编程语言 > 编程打印出数字金字塔

编程打印出数字金字塔

发布时间:2022-07-10 17:57:04

A. 编写C程序,输出如下所示的数字金字塔。要求用循环实现

#include<stdio.h>
voidmain()
{
inti,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=0;k<(n-i)*2;k++)
printf("");
for(j=1;j<=i;j++)
printf("%-2d",j);
for(j=i-1;j>=1;j--)
printf("%-2d",j);
printf(" ");
}
}

B. c语言程序输出数字金字塔

给,已经编译运行通过:
#include<conio.h>
#include<stdio.h>

void main()
{
int n;//这个就是定义的你需要输出的行数
int i,j;

printf("please input the n: ");
scanf("%d",&n);//输入需要输出的行数

for(i=0;i<n;i++)
{
for(j=0;j<2*(n-1-i);j++) printf(" ");
for(j=0;j<=i;j++) printf("%d",j+1);
for(j=0;j<2*i-1;j++) printf(" ");
for(j=i+1;j>0;j--)
{
if(i==0) break;
printf("%d",j);
}

printf("\n");
}

getch();
}

C. 编程打印出以下数字金字塔图案,其中图案的层数在程序运行时由键盘输入 1 121 12321 1234321

#include<stdio.h>
int main()
{
int i,j,k=1,temp;
printf("please input your layer:");
scanf("%d",&temp);
if(temp>10)
{
printf("input wrong");
}
printf("\n");
for(i=1;i<=temp;i++)
{
k=1;
for(j=1;j<=temp-i;j++)printf(" ");
for(;j<=temp;j++)printf("%d",k++);
for(k=k-2;k>=1;k--)printf("%d",k);
printf("\n");
}
return 1;
}
/*编译是通过的。。直接黏贴试试看。*/

D. 如何用c语言编写这个数字金字塔

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

E. C语言的数字金字塔问题

给,已经编译运行通过:

#include<conio.h>

#include<stdio.h>

voidmain()

{

intn;//这个就是定义的你需要输出的行数

inti,j;

printf("pleaseinputthen:");

scanf("%d",&n);//输入需要输出的行数

for(i=0;i<n;i++)

{

for(j=0;j<2*(n-1-i);j++)printf("");

for(j=0;j<=i;j++)printf("%d",j+1);

for(j=0;j<2*i-1;j++)printf("");

for(j=i+1;j>0;j--)

{

if(i==0)break;

printf("%d",j);

}

printf(" ");

}

getch();

}

给你一个运行的截图

F. 用c语言怎么打印数字金字塔

#include <stdio.h>

#include <stdlib.h>

int main()

{

int i,j,n;

scanf("%d",&n);

for(i=0;i<n;++i)

{

for(j=-n+1;j<n;++j)

{

if(abs(j)>i)

{

printf(" ");

}

else

{

printf("%d",i+1-abs(j));

}

}

printf(" ");

}

return 0;

}

G. 怎样用JAVA打印出下面下列数字金字塔

这是我看到的第三个相同的问题了

先给你讲思路吧,首先这是个三角形,用3个FOR循环打印,一个控制行,一个控制前面的空格,一个控制后面打的东西。

如:

for(){//控制行数

for(){//控制每行前面的空格

}

for(){//控制每行所打的东西

}

}

例如光打个三角形的,不管里面的数字,那就这样:

for(inthang=0;hang<6;hang++){//控制行(hang)

for(intkongge=0;kongge<hang;kongge++){//控制前面空格

System.out.print("");

}

for(intneirong=6;neirong>hang;neirong--){//控制内容

System.out.print("*");

}

System.out.println();//打印完一行换行

}

第三个FOR循环里面的neirong>hang(这个变量可以自己定,表示有对少内容,这个是大于行数,由行数来决定,因为行数循环一次增加一次,则内容就减少一个)

上面是每打一行,则少一个内容,而你的题目是少两个,你数数,你的第一行有11个,第二就有9个了。

那就这样:

intnr=11;//定义控制内容个数的变量nr

for(inthang=0;hang<6;hang++){//控制行

for(intkongge=0;kongge<hang;kongge++){//控制空格

System.out.print("");

}

for(intneirong=nr;neirong>0;neirong--){//看,内容等于nr

System.out.print("*");

}

nr=nr-2;//每循环完一次,nr减少2;

System.out.println();

}

看到了么第三个for循环里的neirong>0,我写的是0,也可以的,意思内容由nr决定,第一次循环是11个数字,结束后nr-2,下一次循环就是9个数字了,以此类推

------------

好了,现在形状已经打印出来了,那就把里面的*改成变化的数字就可以了。首先你的数字是先是以3的倍数增加,然后到中间后,以3的倍数减少。你数数,每行都是从最中间开始变的,中间那个数最大。

那首先我想到的是写两个方法,一个乘,一个除。

一下是两个方法:

publicstaticintcheng(intnum1){

num1=num1*3;

if(num1==0){

num1=1;

}

returnnum1;

}

publicstaticintchu(intnum1){

num1=num1/3;

returnnum1;

}

现在方法写了,我们直接带入进去就好了;

我给全部代码:

publicclassSan{//类名三

publicstaticintcheng(intnum1){//静态乘法方法

num1=num1*3;//带入的参数乘3

if(num1==0){//判断如果参数是0,则直接返回1

num1=1;

}

returnnum1;//返回结果

}

publicstaticintchu(intnum1){//静态方法除法

num1=num1/3;//参数直接除以3

returnnum1;//返回结果

}

publicstaticvoidmain(String[]args){//程序入口main方法

intnr=11;//定义初始内容个数,11个

for(inthang=0;hang<6;hang++){//第一个FOR循环,控制行

intchushi=0;//上面两个参数的初始值0

for(intkongge=0;kongge<hang;kongge++){//控制空格

System.out.print(" ");//打印空格

}

for(intneirong=nr;neirong>0;neirong--){//控制内容

intzhongjian=0;//定义最中间的数

if(nr%2!=0){//内容个数除2有余,则除2+1

zhongjian=nr/2+1;

}else{//内容没有余数,则直接除2

zhongjian=nr/2;

}

if(neirong>=zhongjian){//如果内容个数大于中间数,则实行乘法

System.out.print(cheng(chushi)+" ");

chushi=cheng(chushi);

}else{//如果内容小于中间数,则实行除法

System.out.print(chu(chushi)+" ");

chushi=chu(chushi);

}

}

nr=nr-2;//换行,内容个数减少2个

System.out.println();//换行

}

}

}

--------------------------

不知道你明白没。

上面的中间数意思是说告诉程序哪里开始递减。

比如第一行,有11个数字,到第6个数的时候停止再乘3,转向除3,

那怎么得到6?那就用11/2,而这样只能得到5,所以我上面用了判断,如有有余数的话,就加上1,那中间数就得到6了,如果没余数,就直接除2,第二行就是10/2,得到了5,你看看中间是不是第5个丫。

下面我判断如果neirong>=zhongjian如果内容大于中间数的话,就执行乘法,不大于就执行除法。

用实际例子说明:你的例子第一行,有11个数,

那就是

13927812438127931

1110987654321

6以前的都是执行乘法,5以后的都是执行的除法饿。

你自己在仔细看看吧

刚看了这个问题,临时想的方法,可能不怎么好,但是你也可以看一看。

H. 用python打印数字金字塔

num=eval(input('请输入一个整数:'))
print('数字金字塔显示如下:')
level= 1 #金字塔的高度即层数
while level <= num:
kk=1 #每一层长度的计数
t=level
length=2*t-1
while kk<=length:
if kk==1:
if kk==length:
print(format(t,str(2*num-1)+'d'),'\n')
break
#要形成金字塔型,13d是1的距离,15d是7的距离,然后进行测试
#只要之后的距离比1的距离多2,再减去2倍的层数即可以得到金字塔形状
else:
print(format(t,str(2*num+1-2*level)+'d'),'',end='')
t-=1
else:
if kk==length:
print(t,'\n')
break
elif kk<= length/2:
print(t,'',end='')
t-=1
else:
print(t,'',end='')
t+=1
kk+=1
level+=1

I. 打印数字金字塔(python)

这个python练习题的要求是:输出依次输出100以内的数字,附加要求(要金子塔型式)

输出100以内的数字金字塔的形式显示方法,代码如下:

?

123456789a = 1b = 2printfor i in range(1, 101):print i,if i == a:printa = a+bb = b+1
阅读全文

与编程打印出数字金字塔相关的资料

热点内容
mdr软件解压和别人不一样 浏览:884
单片机串行通信有什么好处 浏览:320
游戏开发程序员书籍 浏览:843
pdf中图片修改 浏览:269
汇编编译后 浏览:474
php和java整合 浏览:829
js中执行php代码 浏览:440
国产单片机厂商 浏览:57
苹果手机怎么设置不更新app软件 浏览:284
转行当程序员如何 浏览:492
苹果id怎么验证app 浏览:864
查看手机命令 浏览:953
抖音反编译地址 浏览:226
如何加密软件oppoa5 浏览:233
java从入门到精通明日科技 浏览:96
拆解汽车解压视频 浏览:598
新版百度云解压缩 浏览:593
android上下拉刷新 浏览:880
centos可执行文件反编译 浏览:839
林清玄pdf 浏览:271