C++基礎之字符輸出 cout


找了一些視頻教程,課程的示例是輸入一個三角形

 

 要輸入這樣的圖案,思路是可以進行拆解,分為兩三角形分別輸出,先輸入一部分,比如,先輸出上半部分三角形:

找到規律,可以發現,上面的三角形是7顆星,也就是說,我們要每次循環增加2顆星,下一行比上一行多兩顆星 也就是遞增的方式,逐次增加,可以這樣寫

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; b<j; ++b)

  {

    cout<<"*";

  }

  cout<<endl;

}

然后一起運行

 

 OK,下面來點擴層,如果要輸出一個完整的三角型,像這樣:

 

 首先我們可以這樣來拆分,第一步,我們輸入空格,這個空格,我們想象成一個上一個例子的下半截,那么可這樣寫,最外層的循環體寫法和上面一樣:

for(int i=1;i<=10;++i)

{

for (int c = 1; c <=10 - i; ++c)
{
cout << "- ";


}

}

這里提一下,為什么是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)
{
cout << "  ";


}

for(int a=1;a<=i;++a)

{

  cout<< " " << "*";

}

cout<<endl;

}

最終的效果,

 

 這里也是拋磚引玉,網上的大佬太多,學習的過程中,不能只跟着視頻教程的思維走,也要有自己的思考,在理解的同時,學會舉一反三.歡迎留言交流.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM