[問題] 打星號畫圖

看板C_and_CPP作者 (paris)時間14年前 (2009/11/03 22:52), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/12 (看更多)
今天遇到一題在螢幕上show星號畫圖的問題 * ** *** 一般是使用兩個迴圈... for(int i=1; i<n;i++) fot(int j=1; j<=i;j++) cout<<"*"; 但今天的題目是"限定只能用一個迴圈" so 單就這題來說是想到 #include<iostream> #include<cstdlib> #include<string> #include<cstring> using namespace std; int main() { char a[]="*"; for(i=0;i<3;i++) { cout<<a<<endl; strcat(a,"*"); } system("pause"); return 0; } 但有兩個問題 1.一開始宣告我若是宣告string a="*"; 在strcat那邊就過不了... 2.如果反過來... *** ** * 要怎麼做阿? 3.如果不用strcat這種方法 是否有其它較直觀的解法呢? (當然還是限定one-loop) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.49.87

11/03 22:59, , 1F
i == n-1時可以改變n的值 讓迴圈可以繼續跑下去
11/03 22:59, 1F

11/03 23:04, , 2F
既然都可以用strcat了 那就自己寫一個func吧(誤XD
11/03 23:04, 2F

11/03 23:07, , 3F
for(i) { cout << setfill('*') << setw(i) << '*' ; }
11/03 23:07, 3F

11/03 23:07, , 4F
在書上看到的方法。
11/03 23:07, 4F

11/03 23:35, , 5F
printf也可以用動態決定產生填充字元數量的方式, l大好
11/03 23:35, 5F

11/03 23:35, , 6F
像在哪篇推過還是回的文, 一時找不到文章編號XD
11/03 23:35, 6F

11/03 23:36, , 7F
對了, strcat不能這樣用, char a[]="*";相當於a只有兩個
11/03 23:36, 7F

11/03 23:37, , 8F
char的空間(一個放'*'一個放'\0'), strcat後就炸掉了.
11/03 23:37, 8F
文章代碼(AID): #1Ay4ELMi (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Ay4ELMi (C_and_CPP)