C語言實(shí)現(xiàn)打印數(shù)字金字塔
C語言打印數(shù)字金字塔
題目:打印如下圖所示的數(shù)字金字塔(注意觀察數(shù)字分布的規(guī)律)。
思路:運(yùn)用循環(huán)的嵌套控制輸入行以及每一行的具體內(nèi)容,其中不同的內(nèi)循環(huán)控制具體內(nèi)容——遞增的數(shù)字,空格,遞減的數(shù)字 代碼:
#include<stdio.h> int main() { int n,i=1,num;// n為總行數(shù),i為每行最大的數(shù),num為數(shù)字 printf("請輸入金字塔行數(shù)n:"); scanf("%d",&n); for(num=1;i<=n;i++) { for(num=1;num<=2*(n-i);num++) printf(" ");//打印空格 for(num=1;num<=i;num++) printf("%d ",num);//打印遞增的數(shù)字 for(num=i-1;num>=1;num--) printf("%d ",num);//打印遞減的數(shù)字 num=i; printf("\n"); } return 0; }
運(yùn)行結(jié)果:
C語言金字塔問題
代碼講解
這里講一下關(guān)于數(shù)字金字塔,代碼如下所示:
#include <stdio.h> #include <math.h> int main() { int n,i,j; printf("請輸入行數(shù)n: "); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<=n-i;j++) printf(" "); for(j=0;j<2*i+1;j++) printf("%c",'0'+i%10) ; printf("\n"); } }
1.這里變量i用來控制行數(shù),i逐漸增大
達(dá)到我們鍵入數(shù)值n后就不再執(zhí)行for語句,下列循環(huán)同理
int n,i,j;//定義變量 printf("請輸入行數(shù)n: ");//提示輸入行數(shù)
2.同樣的,j用來控制每行打印的個(gè)數(shù)(也就是說個(gè)數(shù)與j的值有關(guān))
我們先打印空格,也就是白色區(qū)域;
3.然后再打印出我們所需要元素:
比如我的代碼想要可以打出數(shù)字的話,
那就需要格式化輸出,用%c
"%c"
然后對于超過9(一般只能輸出0~9)的數(shù)對10取余再加上’0’,
就可以打出以0到9為元素的金字塔,
printf("%c",'0'+i%10) ;
最后別忘了要加上 printf(“\n”) 才能分行打印出來。
printf("\n");
自變量j的取值其實(shí)可以看做我們學(xué)過的數(shù)列問題,
每行打印數(shù)據(jù)中,一種遞增,另一種遞減
這樣打印出的數(shù)量不同,使得最后的圖案不同。
運(yùn)行實(shí)例
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c#中實(shí)現(xiàn)退出程序后自動(dòng)重新啟動(dòng)程序的方法
下面小編就為大家?guī)硪黄猚#中實(shí)現(xiàn)退出程序后自動(dòng)重新啟動(dòng)程序的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01C++實(shí)現(xiàn)經(jīng)典24點(diǎn)紙牌益智游戲
這篇文章主要介紹了C++實(shí)現(xiàn)經(jīng)典24點(diǎn)紙牌益智游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03vs2019永久配置opencv開發(fā)環(huán)境的方法步驟
這篇文章主要介紹了vs2019永久配置opencv開發(fā)環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03C++基于easyx圖形庫實(shí)現(xiàn)打磚塊游戲
這篇文章主要為大家詳細(xì)介紹了C++基于easyx圖形庫實(shí)現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05