導航:首頁 > 編程語言 > 編程列印出數字金字塔

編程列印出數字金字塔

發布時間: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
閱讀全文

與編程列印出數字金字塔相關的資料

熱點內容
awss3命令 瀏覽:356
百度店鋪客戶訂單手機加密 瀏覽:500
釘釘班群文件夾怎麼上傳文件 瀏覽:749
人社app怎麼解綁手機 瀏覽:101
caj文件夾打不開 瀏覽:475
什麼app可以將電量變色 瀏覽:692
解放出你的解壓抖音小游戲 瀏覽:345
什麼方式解壓比較好 瀏覽:266
erp是什麼伺服器 瀏覽:185
python中tmp 瀏覽:24
說明wpf加密過程 瀏覽:145
java讀取list 瀏覽:703
iis7gzip壓縮 瀏覽:40
有什麼安卓機打吃雞好 瀏覽:598
三星u盤加密狗 瀏覽:474
php函數的返回值嗎 瀏覽:587
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:220
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993