看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《VictorTom (鬼翼&娃娃魚)》之銘言: : ※ 引述《fjf1980 (Yes We Can!)》之銘言: : : 我今天無聊自己玩畫一個圖形,就是給定高及寬都是奇數,畫一個類似以下圖形 : : 1 *********** : : 2 ***** ***** : : 3 **** **** : : 4 *** *** : : 5 ** ** : : 6 * * : : 7 ** ** : : 8 *** *** : : 9 **** **** : : 10***** ***** : : 11*********** : : 花了我好久時間,寫出來一個程式,但是感覺真的是很遜的程式 : : 在底下,請問有沒有高手能對這圖形有比較好的寫法 先聲明這是惡搞 我平常不是這樣寫程式的 XD 我也不建議這麼做 #include <stdio.h> #include <string.h> int main(void) { int i; int n; char str[1024]; while(scanf("%d", &n) == 1 && n >= 3) { memset(str, '*', n); str[n] = '\0'; printf("%s\n", str); for(i=1;i<n-1;i++) { int x = (n-1)/2; int y = (x+1-i>0)?(x+1-i):(x-n+2+i); printf("%.*s%*s%.*s\n", y, str, n-y*2, "", y, str); } printf("%s\n", str); printf("\n"); } return 0; } -- 有時候,遺忘,是令人快樂的。什麼時候?當然是有人傷了你的心的時候。  存心傷你的那個人,固然是故意和你過不去,但是被傷了心而耿耿於懷的你  ,卻是和自己過不去了。所以,記性不好的人,通常會是比較快樂的人,也  是比較不容易被擊倒的人。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.50
VictorTom:唉~~小弟我老學不會那個動態指定長度的printf用法Q_Q~ 10/27 13:27
ledia:* 是 min width, .* 是 max width 10/27 13:49
ledia:指定 min width 沒到會補空白,超過不截斷 10/27 13:51
ledia:指定 max width 就是不超過指定長度 10/27 13:52
VictorTom:謝樓上l大, 先找東西記起來好了:) 10/27 14:01
cutecpu:推! 10/27 15:33