色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

微軟游戲編程視頻教程,project和office的區(qū)別

如何用c語(yǔ)言for循環(huán)打出一個(gè)空心菱形?

畫圖畫圖(不畫圖難以會(huì)意)。下面是一個(gè)草圖?(找了個(gè)在線白板畫的,漂亮吧~^(* ̄(oo) ̄)^)。

如圖所示,假設(shè)要畫一個(gè)規(guī)格為2a*2b的◇。a,b分別為對(duì)應(yīng)方向的中心位置。不難看出,程序一共需要打印2b+1行,2a+1列(因?yàn)榈?行0列也是需要打印的,但是程序是從0開始計(jì)數(shù)的,因此最后的行列下標(biāo)就是2a和2b,2a+1和2b+1是數(shù)量)。

程序打印通常會(huì)使用空格和*作為打印菱形的字符,由于基本的輸出單位是字符(相當(dāng)于菱形內(nèi)的所有角的大小是固定的,不論多么大的菱形都是相似的),所以2a和2b會(huì)相互制約。我想打印一個(gè)10*50的菱形時(shí),當(dāng)打印到第5行是就已經(jīng)從橫向偏移量為0的位置開始打印了,第6行將會(huì)從-1列開始打印,這樣打印出的圖案將會(huì)是一個(gè)不完成的菱形,如下圖,虛線部分將不會(huì)被打印。

程序以行為輸出,因此我們不在控制y軸,只通過控制x軸方向的a來(lái)控制菱形的大小。我們不妨來(lái)歸納一下打印的規(guī)則:

第0行需要打印a個(gè)空格、打印一個(gè)*、換行。

第1行需要打印a-1個(gè)空格、打印1個(gè)*、打印1個(gè)空格、打印1個(gè)*、換行。

第2行需要打印a-2個(gè)空格、打印1個(gè)*、打印3個(gè)空格、打印1個(gè)*、換行。

第3行需要打印a-3個(gè)空格、打印1個(gè)*、打印5個(gè)空格、打印1個(gè)*、換行。

第n行需要打印a-n個(gè)空格、打印1個(gè)*、打印2n-1個(gè)空格、打印1個(gè)*、換行。

一直需要打印到n==a。打印0個(gè)空格、打印1個(gè)*、打印2a-1個(gè)空格、打印1個(gè)*、換行。

之后開始往回畫。

第a+1行需要打印1個(gè)空格、打印1個(gè)*、打印2a-3個(gè)空格、打印1個(gè)*、換行。

第a+2行需要打印2個(gè)空格、打印1個(gè)*、打印2a-5個(gè)空格、打印1個(gè)*、換行。

第a+m行需要打印m個(gè)空格、打印1個(gè)*、打印2a-(2m+1)個(gè)空格、打印1個(gè)*、換行。

當(dāng)打印到2a-(2m+1)<0[2a-2m<1=>m==a]時(shí),則只直接打印換行,結(jié)束程序。

不難計(jì)算得出,一共需要打印2a+1行(和上面的2b+1相對(duì)應(yīng))。

示例如下圖,網(wǎng)格里的大點(diǎn)點(diǎn)就是我們需要打印的點(diǎn):

這樣,偽代碼基本就出來(lái)了:

參數(shù):a 橫向的中心點(diǎn)

// 打印上半截

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

// 打印一行內(nèi)容

for(i = 0; i < a-n; i ++){

print(' ');//打印a-n個(gè)空格

}

print('*');//打印1個(gè)*

if((2n - 1) < 0){

print('\n');// 未打印空格直接換行

continue;

}

for(i = 0; i < (2n - 1); i ++){

print(' ');//打印2n - 1個(gè)空格

}

print('*');// 打印1個(gè)*

print('\n');// 換行

}

// 打印下半截

for(m = 1; m <=a; m ++){

for(i = 0; i < m; i ++){

print(' ');// 打印m個(gè)空格

}

print('*');// 打印1個(gè)*

if(2a-(2m+1) < 0){

print('\n');// 換行

break;// 終止程序

}

for(i = 0; i < 2a-(2m+1); i ++){

print(' ');// 打印2a-(2m+1)個(gè)空格

}

print('*');// 打印1個(gè)*

print('\n');// 換行

}

以上就思路啦,趕緊去試一試吧~

以上內(nèi)容只是說明了思路,大家還有什么好方法呢?一起來(lái)聊聊吧~

我是一名程序員,更多精彩請(qǐng)關(guān)注:空心小窩頭

java星星,如何用c語(yǔ)言for循環(huán)打出一個(gè)空心菱形