作者ledia (下班後才下棋)
看板C_and_CPP
標題Re: [問題] 請問畫一個圖形
時間Tue Oct 27 10:36:14 2009
※ 引述《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