C語(yǔ)言詳解實(shí)現(xiàn)字符菱形的方法_第1頁(yè)
C語(yǔ)言詳解實(shí)現(xiàn)字符菱形的方法_第2頁(yè)
C語(yǔ)言詳解實(shí)現(xiàn)字符菱形的方法_第3頁(yè)
C語(yǔ)言詳解實(shí)現(xiàn)字符菱形的方法_第4頁(yè)
C語(yǔ)言詳解實(shí)現(xiàn)字符菱形的方法_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第C語(yǔ)言詳解實(shí)現(xiàn)字符菱形的方法目錄前言1.定義stdio.h頭文件2.定義主函數(shù)3.定義行數(shù)-單數(shù)4.得出分割行數(shù)5.定義字符6.初始化打印字符數(shù)與打印空白數(shù)7.循環(huán)打印菱形8.打印上部分9.打印剩下部分10.完整代碼11.完整效果

前言

好,今天就來(lái)講一下如何解這道題。

#includestdio.h

main()

charch=getchar();

printf("%c\n%c%c%c\n%c%c%c%c%c\n%c%c%c\n%c\n",ch,ch,ch,ch,ch,ch,ch,ch,ch,ch,ch,ch,ch,ch);

}

好的,講解完了再見(jiàn)。

等等,騙你的,上面是死方法,下面才是活方法。

1.定義stdio.h頭文件

想必大家都會(huì),我不信,有人不會(huì)。

#includestdio.h//定義stdio.h頭文件

2.定義主函數(shù)

這也是很簡(jiǎn)單的。

intmain()//主函數(shù)

return0;

}

3.定義行數(shù)-單數(shù)

制造一個(gè)字符菱形,我們先需要定義一個(gè)他的大小,也就是行數(shù),一個(gè)完美的菱形,它的行數(shù)一定是單數(shù)。

{

inthang;//定義行數(shù)-單數(shù)

printf("定義行數(shù)-單數(shù):");

scanf("%d",hang);//定義行數(shù)-單數(shù)

}

4.得出分割行數(shù)

通過(guò)我們定義的行數(shù),得出上下分割部處的行數(shù)。

{

intshang_xia=(hang/2+1);//定義分割行數(shù)

}

5.定義字符

定義字符需要注意一點(diǎn),我們先前定義了行數(shù),其中緩存區(qū)有個(gè)回車,我們得先清除一下緩存區(qū),這里我推薦用setbuf(stdin,NULL),清除緩存區(qū),主要是方便。

{

setbuf(stdin,NULL);//清除緩存域

printf("定義字符:");

chara=getchar();//定義字符

}

6.初始化打印字符數(shù)與打印空白數(shù)

剛開(kāi)始我們打印的字符數(shù),與空白數(shù)肯定要初始化一下,字符數(shù)剛開(kāi)始都是1,這不用想,還有空白數(shù)的話,這是行數(shù)hang/2,因?yàn)樾袛?shù)是單數(shù),所以/2后,會(huì)空出一個(gè)格子。

{

intci=1,//定義打印字符數(shù)

kon_ci=hang/2;//定義打印空白數(shù)

}

7.循環(huán)打印菱形

首先我們打印菱形,肯定需要一個(gè)大循環(huán),每打印一行,都需要一個(gè)回車,所以這邊直接加上,行數(shù)減一防止多打一個(gè)回車影響美觀。

for(inti=0;ihang;i++)//循環(huán)打印菱形

//打印到上部分

//打印剩下部分

if(ihang-1)//防止多打

printf("\n");//打印回車

}

8.打印上部分

打印上半部分,這時(shí)候就需要我們的分割行數(shù),上半部分的打印是,先利用循環(huán)打印空白,再打印字符數(shù),因?yàn)榱庑蚊繉痈语枬M,所以空白數(shù)要減少一點(diǎn),還打印的字符要加兩個(gè),再打印回車。按照這個(gè)原理循環(huán),上半部分就成功了。

{

if(ishang_xia)//打印上部分

for(intj=0;jkon_ci;j++)//打印空白數(shù)

printf("");打印空白

for(intj=0;jj++)//打印字符數(shù)

printf("%c",a);//打印字符

ci+=2;//每次打印字符數(shù)+2

kon_ci--;//每次空白數(shù)-1

}

9.打印剩下部分

打印剩下部分就比較簡(jiǎn)單了,上面每次空白減1,這里就加1,上面字符加2,這你就減2,跟他反著來(lái)就行了,不知道你們有沒(méi)有注意到,上面有一個(gè)減一和加二,運(yùn)算之后沒(méi)有用到,所以我們得先減去。之后就完成了。

{

if(ihang/2)//打印剩下部分

if(i==shang_xia)//打印到分割行數(shù)時(shí)多加一次沒(méi)用,所以減去

ci-=2;//每次打印字符數(shù)-2

kon_ci++;//每次空白數(shù)+1

ci-=2;//每次打印字符數(shù)-2

kon_ci++;//每次空白數(shù)+1

for(intj=0;jkon_ci;j++)//打印空白數(shù)

printf("");//打印空白

for(intj=0;jj++)//打印字符數(shù)

printf("%c",a);//打印字符

}

10.完整代碼

第1次做有點(diǎn)水,請(qǐng)多多海涵。

#includestdio.h//定義stdio.h頭文件

intmain()//主函數(shù)

inthang;//定義行數(shù)-單數(shù)

printf("定義行數(shù)-單數(shù):");

scanf("%d",hang);//定義行數(shù)-單數(shù)

intshang_xia=(hang/2+1);//定義分割行數(shù)

setbuf(stdin,NULL);//清除緩存域

printf("定義字符:");

chara=getchar();//定義字符

intci=1,//定義打印字符數(shù)

kon_ci=hang/2;//定義打印空白數(shù)

for(inti=0;ihang;i++)//循環(huán)打印菱形

if(ishang_xia)//打印上部分

for(intj=0;jkon_ci;j++)//打印空白數(shù)

printf("");打印空白

for(intj=0;jj++)//打印字符數(shù)

printf("%c",a);//打印字符

ci+=2;//每次打印字符數(shù)+2

kon_ci--;//每次空白數(shù)-1

if(ihang/2)//打印剩下部分

if(i==shang_xia)//打印到分割行數(shù)時(shí)多加一次沒(méi)用,所以減去

ci-=2;//每次打印字符數(shù)-2

kon_ci++;//每次空白數(shù)+1

ci-=2;//每次打印字符數(shù)-2

kon_ci++;//每次空白數(shù)+1

for(intj=0;jkon_ci;j++)//打印空白數(shù)

printf("");//

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論