精華區beta C_and_CPP 關於我們 聯絡資訊
請問用 Turbo C++ 如何寫出輸出結果為下列圖案~ (10x10) !********* !!******** !!!******* !!!!****** !!!!!***** !!!!!!**** !!!!!!!*** !!!!!!!!** !!!!!!!!!* !!!!!!!!!! 新手請益啊~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.170.62
Keiichi:迴圈 140.112.19.178 05/26
windows2k:Recursive XD140.115.220.139 05/26
lsk:一行一行印 221.169.27.229 05/26
flexu:設i為印出'!'的個數 j為印出'*'的個數 每印一行 61.70.188.66 05/26
flexu:i+1 j-1應該就可以了吧~ 61.70.188.66 05/26
> -------------------------------------------------------------------------- < 作者: waterworld0 (好難抉擇...) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 15:40:46 2005 ※ 引述《nhy (考古學家助手)》之銘言: #include <iostream> using namespace std; void print(int, int); int main() { print(1, 9); return 0; } void print(int l, int r) { if( l == 11 ) return; else{ for(int i = 0; i < l; i++) cout << '!'; for(int j = 0; j < r; j++) cout << '*'; cout << endl; print(l+1, r-1); } } : 請問用 Turbo C++ : 如何寫出輸出結果為下列圖案~ : (10x10) : !********* : !!******** : !!!******* : !!!!****** : !!!!!***** : !!!!!!**** : !!!!!!!*** : !!!!!!!!** : !!!!!!!!!* : !!!!!!!!!! : 新手請益啊~~~~ -- an water ball a day keeps lonely away~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.116
nhy:哇~感恩~218.167.179.134 05/26
> -------------------------------------------------------------------------- < 作者: aecho (星空下的鮪魚) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 16:57:43 2005 #include <iostream> #include <string> using namespace std; int main(){ int i; for (i = 1; i < 10;i++){ string m1(i,'!'); string m2(9-i,'*'); cout << m1+m2 << endl; } system("pause"); return 0; } -- 有多少笑語 就有多少哭泣 幸福的背後 總是隱藏著悲劇 -----摘自 趙寧 --找一個字代替-- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.95.107
aecho:當練習 @@ 218.166.95.107 05/26
※ 編輯: aecho 來自: 218.166.95.107 (05/26 17:00)
waterworld0:學長A片抓完囉XD? 140.112.30.116 05/26
aecho:= = 218.166.95.107 05/26
waterworld0:string m1(i,'!'); 不過這個用法好率器 140.112.30.116 05/26
waterworld0:以前都沒看過 140.112.30.116 05/26
aecho:隱形鬼學弟 = = 218.166.95.107 05/26
aecho:我到剛剛為止也從沒看過 .... 218.166.95.107 05/26
aecho:正在 K書中 .... 218.166.95.107 05/26
nhy:哇~感恩~218.167.179.134 05/26
mjmjttn:string m1(i,'!'); 這我也沒看過~果然是高手 61.62.29.173 05/26
flexu:string是指用string這個class嗎? 後面的語法好熟悉 61.70.188.66 05/26
aecho:對啊~ 218.166.95.107 05/27
> -------------------------------------------------------------------------- < 作者: Simonyhchen (Simon) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 17:42:18 2005 #include <iostream> using namespace std; int main() { int N_N=10;//試試看 N_N=20 :) for(int i=1;i<=N_N;++i) { int k =i; while(k!=0) { cout<<"!"; --k; } for(int j=N_N-i;j>0;--j) cout<<"*"; cout<<endl; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.144.142
nhy:哇~感恩~218.167.179.134 05/26
CallMeSOONya:好厲害@@ 比我寫的短多了218.165.107.167 05/26
> -------------------------------------------------------------------------- < 作者: sougly (do my best!) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 18:03:19 2005 麻煩不要直接給答案... 這是"討論區" 不是"程式碼伸手區" 也不是"作業求檔區" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.12.20
aecho:對不起 >"< 218.166.95.107 05/26
Simonyhchen:有所付出才有所得,本版一口好程式的人多的很140.113.144.142 05/26
Simonyhchen:看到別人po出的版本,或許可以加強自己能力140.113.144.142 05/26
> -------------------------------------------------------------------------- < 作者: CallMeSOONya (肚子餓~~~) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 18:39:23 2005 ※ 引述《nhy (考古學家助手)》之銘言: : 請問用 Turbo C++ : 如何寫出輸出結果為下列圖案~ : (10x10) : !********* : !!******** : !!!******* : !!!!****** : !!!!!***** : !!!!!!**** : !!!!!!!*** : !!!!!!!!** : !!!!!!!!!* : !!!!!!!!!! : 新手請益啊~~~~ 我也是新手 可交流交流 XD~~~ 我剛剛自己也練習一下 然後我另外把它改成輸入一個數 X 然後 就會產生 (X*X) 的圖 不知道我的寫法恰不恰當 (不過可以跑出來了T.T) 我的程式碼 #include <iostream> using namespace std; void main() { void print(int,int); int a,x,y; cout<<"請輸一個數字:"; cin>>a; x=1; y=a-1; for(int i=0;i<a;i++) { print(x,y); x++; y--; } } void print(int x,int y) { for(int i=0;i<x;i++) { cout<<"!"; } for(int j=0;j<y;j++) { cout<<"*"; } cout<<"\n"; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.107.167
CallMeSOONya:對了...endl是空行的意思麼0.0?218.165.107.167 05/26
CallMeSOONya:我一開始是看C的書 當時空行都用\n 說218.165.107.167 05/26
CallMeSOONya:不過上面幾個大大的 都沒有用這個@@"218.165.107.167 05/26
mjmjttn:沒記錯的話 endl是c++才有的 61.62.29.173 05/26
> -------------------------------------------------------------------------- < 作者: jeunder (omega~ oh my god) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 18:48:16 2005 大家回答的那麼踴躍, 是在比誰的版本比較好玩嗎? 以前交作業我都是這樣玩的... 結果, 被老師叫過去罵到臭頭: "怎麼寫成這樣? 出去別說你是我學生!" 可是我的答案明明沒錯啊... XD #include <cstdio> int f(int i = 0) { return std::putchar(i % 10 > i / 10 ? '*' : '!') && !(++i / 100) && (i % 10 || std::putchar('\n')) && f(i); } int main() { f(); } ※ 引述《nhy (考古學家助手)》之銘言: : 請問用 Turbo C++ : 如何寫出輸出結果為下列圖案~ : (10x10) : !********* : !!******** : !!!******* : !!!!****** : !!!!!***** : !!!!!!**** : !!!!!!!*** : !!!!!!!!** : !!!!!!!!!* : !!!!!!!!!! : 新手請益啊~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.234.102
sekya:恩 一般來講遞迴式都會短很多 你淫了 :p 59.104.35.220 05/26
waterworld0:可讀性 --> 0 210.58.70.170 05/27
aecho:你淫了 :p 218.166.95.107 05/27
nosrep:出去寫程式真的別寫這樣...@@... 59.104.98.172 05/27
> -------------------------------------------------------------------------- < 作者: frugality (frugality) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Thu May 26 23:44:19 2005 int main() { int i, j; for (i = 0; i < 10; i ++) { for (j = 0; j < 10; j ++) { if (j <= i) cout << '!'; else cout << '*'; } cout << endl; } return 0; } ※ 引述《nhy (考古學家助手)》之銘言: : 請問用 Turbo C++ : 如何寫出輸出結果為下列圖案~ : (10x10) : !********* : !!******** : !!!******* : !!!!****** : !!!!!***** : !!!!!!**** : !!!!!!!*** : !!!!!!!!** : !!!!!!!!!* : !!!!!!!!!! : 新手請益啊~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.222.121
waterworld0:大家都在比誰的程式帥氣哩@@" 210.58.70.170 05/27
> -------------------------------------------------------------------------- < 作者: waterworld0 (好難抉擇...) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 00:18:19 2005 #include <stdio.h> main(int argc) { if( argc == 11 )return; else{ for(int i = 0; (i < argc) && putchar('!'); i++); for(int j = 0; (j < 10-argc)&&putchar('*'); j++); putchar('\n')&&main(argc+1); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.70.170
waterworld0:main call自己XD 210.58.70.170 05/27
waterworld0:等等來想個一行版的 210.58.70.170 05/27
※ 編輯: waterworld0 來自: 210.58.70.170 (05/27 00:39)
aecho:真是夠了... 218.166.95.107 05/27
jeunder:看起來不是很好玩, 還沒掌握好玩的精神 XD 61.230.234.102 05/27
jeunder:而且那個 else 根本就是多餘的 61.230.234.102 05/27
> -------------------------------------------------------------------------- < 作者: waterworld0 (好難抉擇...) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 00:46:32 2005 ※ 引述《waterworld0 (好難抉擇...)》之銘言: 又改成一個更短的了 #include <stdio.h> main(int argc) { if( argc == 11 )return; for(int i = 0; (i++ < argc)&&putchar('!');); for(int j = 0; (j++ < 10-argc)&&putchar('*');); putchar('\n')&&main(argc+1); } -- #include <stdio.h> main(int argc) { if( argc == 11 )return; else{ for(int i = 0; (i++ < argc)&&putchar('!');); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.70.170
nhy:請問是在什麼程式軟體下面 Run 的?218.168.242.180 05/27
waterworld0:VC呀@@" 210.58.70.170 05/27
nhy:瞭解~218.168.242.180 05/27
> -------------------------------------------------------------------------- < 作者: LPH66 (運命をルーレット廻して) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 10:52:03 2005 ※ 引述《waterworld0 (好難抉擇...)》之銘言: : ※ 引述《waterworld0 (好難抉擇...)》之銘言: : 又改成一個更短的了 : #include <stdio.h> : main(int argc) : { : if( argc == 11 )return; : for(int i = 0; (i++ < argc)&&putchar('!');); : for(int j = 0; (j++ < 10-argc)&&putchar('*');); : putchar('\n')&&main(argc+1); : } 那這樣哩? #include <stdio.h> main() { for(i=0;i<100;i++){putchar(i/10>=i%10?'!':'*');i%10==9?putchar('\n'):0;} } 一行搞定XD -- "LPH" is for "Let Program Heal us".... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.178.179 > -------------------------------------------------------------------------- < 作者: HZYSoft (PCMan 2004) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 10:56:31 2005 ※ 引述《LPH66 (運命をルーレット廻して)》之銘言: : ※ 引述《waterworld0 (好難抉擇...)》之銘言: : : 又改成一個更短的了 : : #include <stdio.h> : : main(int argc) : : { : : if( argc == 11 )return; : : for(int i = 0; (i++ < argc)&&putchar('!');); : : for(int j = 0; (j++ < 10-argc)&&putchar('*');); : : putchar('\n')&&main(argc+1); : : } : 那這樣哩? : #include <stdio.h> : main() : { : for(i=0;i<100;i++){putchar(i/10>=i%10?'!':'*');i%10==9?putchar('\n'):0;} : } : 一行搞定XD 沒有人想貼這個令人吐血的答案嗎,我來亂 XD cout<<"!*********\n!!********\n!!!*******\n!!!!******\n!!!!!*****\n!!!!!!**** \ \n!!!!!!!***\n!!!!!!!!**\n!!!!!!!!!*\n!!!!!!!!!!"; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.67.70
pcalex:Orz~~~輸了 134.208.27.107 05/27
aecho: Orz~~~輸了 140.112.30.127 05/27
waterworld0:~~輸了 210.58.70.170 05/27
jeunder:Orz~~~輸了 這個答案老師大概會氣到吐血吧 XD 61.230.226.213 05/27
aecho: Orz~~~輸了 這個答案助教大概會氣到吐血吧 XD218.166.196.189 05/27
CallMeSOONya:~輸了 這個答案老師大概會氣到吐血吧 XD 220.142.109.65 06/05
> -------------------------------------------------------------------------- < 作者: khoguan (Khoguan Phuann) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 11:29:55 2005 ※ 引述《LPH66 (運命をルーレット廻して)》之銘言: : 那這樣哩? : #include <stdio.h> : main() : { : for(i=0;i<100;i++){putchar(i/10>=i%10?'!':'*');i%10==9?putchar('\n'):0;} : } : 一行搞定XD 大家都好厲害哦 (大心) 以下這個版本雖不高明,但比較好理解 #include <iostream> int main() { for(char i=10,str[]="**********"; i;str[10-i]='!',std::cout<<str<<'\n',--i); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.168
vicamo:讚!140.112.251.102 05/27
aecho:還蠻高明的 I/O好少.... 218.167.216.96 05/27
> -------------------------------------------------------------------------- < 作者: aecho (星空下的鮪魚) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 11:52:08 2005 #include <iostream> #include <string> using namespace std; int main(){ for (int i = 1; i < 10;i++) cout << string(i,'i') + string(9-i,'*') << endl; } 改良版 一行的版本 XD -- 或許人生是一段整合內在的自己 並尋求人間一點真情的過程吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.127 ※ 編輯: aecho 來自: 140.112.30.127 (05/27 11:52) > -------------------------------------------------------------------------- < 作者: pziyout (pziyout) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Fri May 27 12:47:07 2005 ※ 引述《nhy (考古學家助手)》之銘言: : 請問用 Turbo C++ : 如何寫出輸出結果為下列圖案~ : (10x10) : !********* : !!******** : !!!******* : !!!!****** : !!!!!***** : !!!!!!**** : !!!!!!!*** : !!!!!!!!** : !!!!!!!!!* : !!!!!!!!!! : 新手請益啊~~~~ 另類作法 : #include <iostream> #include <iomanip> #include <string> using namespace std ; int main() { for ( int i = 9 ; i >=0 ; --i ) cout << setw(10) << setfill('!') << string(i,'*') << endl ; return 0 ; } 或者 int main() { char *p = "*********" ; for ( int i = 0 ; i <= 9 ; ++i ) cout << setw(10) << setfill('!') << p+i << endl ; return 0 ; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.25.22
khoguan:的確另類,有趣。220.130.208.168 05/27
> -------------------------------------------------------------------------- < 作者: HZYSoft (PCMan 2004) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Sat May 28 13:12:18 2005 ※ 引述《HZYSoft (PCMan 2004)》之銘言: : ※ 引述《LPH66 (運命をルーレット廻して)》之銘言: : : 那這樣哩? : : #include <stdio.h> : : main() : : { : : for(i=0;i<100;i++){putchar(i/10>=i%10?'!':'*');i%10==9?putchar('\n'):0;} : : } : : 一行搞定XD : 沒有人想貼這個令人吐血的答案嗎,我來亂 XD : cout<<"!*********\n!!********\n!!!*******\n!!!!******\n!!!!!*****\n!!!!!!**** \ : \n!!!!!!!***\n!!!!!!!!**\n!!!!!!!!!*\n!!!!!!!!!!"; char line[]="!!!!!!!!!!**********"; for(int i=0; i<10; ++i, printf("%.10s\n", line+9+i)); Both code size and execution time are very small. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.55.198
clifflu:great answer e!140.112.212.129 05/28
LPH66:帥! 59.104.51.139 05/28
aecho:印出來不對喔.... 218.166.94.26 05/28
aecho:但是真的很帥~~ ^^ 218.166.94.26 05/28
copyleft:cool! 140.136.155.54 05/28
copyleft:重點是觀念囉, 要印出正確的可以自己改一下 140.136.155.54 05/28
> -------------------------------------------------------------------------- < 作者: khoguan (Khoguan Phuann) 看板: C_and_CPP 標題: Re: [問題] 請教程式寫法~ 時間: Sat May 28 23:16:01 2005 ※ 引述《HZYSoft (PCMan 2004)》之銘言: : : ※ 引述《LPH66 (運命をルーレット廻して)》之銘言: : : 那這樣哩? : : #include <stdio.h> : : main() : : { : : for(i=0;i<100;i++){putchar(i/10>=i%10?'!':'*');i%10==9?putchar('\n'):0;} : : } 用 C 編譯的話,要多宣告一行 int i; 除非是用 C99 的語法才能用 for(int i=0...) 現在用 C++,並乾脆將 '\n' 也算進 loop counter #include <iostream> int main() { for(int n=0; n<110; std::cout<<(n%11==10?'\n':n%11<=n/11?'!':'*'),++n); } : char line[]="!!!!!!!!!!**********"; : for(int i=0; i<10; ++i, printf("%.10s\n", line+9+i)); : : Both code size and execution time are very small. 也把 PCMan 大大這個版本調一下 :-) for(int i=0; i<10; printf("%.10s\n", line+9-i), ++i); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.167
HZYSoft:多謝幫忙勘誤,我隨手寫的自己也沒測試過,歹勢 140.129.67.70 05/29
jeunder:真有趣 :D 61.230.226.190 05/30