要輸入這樣的圖案,思路是可以進行拆解,分為兩三角形分別輸出,先輸入一部分,比如,先輸出上半部分三角形:
for(int i = 1;i<7;i+=2)
這樣一來,我們就可以讓他迴圈5次
第二步,迴圈5次之後要輸入*來組成乙個三角形,也是每次要增加,第一行,要輸入一顆*,第二行就是三顆*....到第五行輸出七顆*
所以要在上面的迴圈體內再加一層for迴圈,那麼可以這樣寫
for(int i = 1;i<5;i+=2)
for(int a = 1;a < i ;++a)
cout << "*";
然後在第一for迴圈裡加上換行
for(int i = 1;i<5;i+=2)
for(int a = 1;a < i ;++a)
cout << "*";
cout << endl;
然後測試一下,看下輸出的是否正確
這樣就輸出了上半部分,那下再來考慮下半部分,下半部分就是乙個遞減的過程,也就是說一開始,就要輸入五顆星
那麼迴圈體就要和上面寫的相反,迴圈的初始數要減少2,7顆星已經輸出過了,我們少輸出一行,所以要減2,然後每次迴圈遞減2
for(int j = 5;j>=1;j-=2)
for(int b =1; bcout<
cout然後一起執行
ok,下面來點擴層,如果要輸出乙個完整的三角型,像這樣:
首先我們可以這樣來拆分,第一步,我們輸入空格,這個空格,我們想象成乙個上乙個例子的下半截,那麼可這樣寫,最外層的迴圈體寫法和上面一樣:
for(int i=1;i<=10;++i)
for (int c = 1; c <=10 - i; ++c)
這裡提一下,為什麼是i<=10,而不是i<10?
假設,如果是i<10,那麼輸出的時候,就會少一行,因為迴圈到了9這裡,就停了,
為了方便直觀的看到這個效果,我們把i<=10,改成i<10測試一下
可以看到差了一行,所以我們就要把<10,改成i<=10
好了,這一步輸出""空來佔位,然後來輸出*號的問題 ,輸出10行,每次輸入*,用空格來間格一下
for(int a=1;a<=i;++a)
cout<< " " << "*";
然後在最外層,加乙個換位符
for(int i=1;i<=10;++i)
for (int c = 1; c <=10 - i; ++c)
for(int a=1;a<=i;++a)
cout<< " " << "*";
cout最終的效果,
C 輸出流cout方法
輸出指定字數的字串。basic ostream write const char type s,streamsize n 1 write遇到空字元時不會停止 2 即使超出邊界,write仍繼續列印 3 可用於資料資料 需將數值資料強制轉換為char 計數制函式 十進位制 十六進製制 八進位制 調整字...
C 輸出流cout方法
輸出指定字數的字串。basic ostream write const char type s,streamsize n 1 write遇到空字元時不會停止 2 即使超出邊界,write仍繼續列印 3 可用於資料資料 需將數值資料強制轉換為char 計數制函式 十進位制 十六進製制 八進位制 調整字...
cout 輸出單個字元時
include using namespace std int main 輸出的是字元,並不是數字。include include using namespace std int main 上例中 substr是string的乙個方法是獲取從下標為6開始的十個字元。replace是string乙個方...