推 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