日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

控制台打印三角形、菱形

發布時間:2023/12/2 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 控制台打印三角形、菱形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 打印三角形

要求:

打印如下類似的三角形

??????????? *

????????? ***

??????? *****

????? *******

?

效果:

?

思路:

(1) 空格每往下一層少一個。

(2) *是奇數數列,(i – 1)* 2 + 1

?

核心代碼:

for(int?i?=?1;?i?<=?layer;?i++)?{
????
for(int?j?=?1;j?<=?(layer?-?i);?j++)?{
????cout
<<"?";
????}

????
for(int?k?=?1;?k?<=?(i?-?1)?*?2?+?1;?k++)?{
????cout
<<"*";
????}
????cout
<<"\n";
}

?

?

?二、 打印菱形

要求:

打印如下類似的菱形

????????? *

??????? ***

????? *****

??????? ***

????????? *

?

效果:

思路:

(1) 空格是對稱的,中間層(例如要求中的菱形,中間層為3)的空格為0,而兩邊的空格數則為當前層數減去中間層的絕對值。

(2) *也是對稱的,中間層數減去空格數,就等于如上奇數數列的i.

?

核心代碼:

for(int?i?=?1;?i?<=?layer;?i++)?{
????
int?j;
????????
????
for(j?=?1;j?<=?abs(i?-?mid);?j++)?{
????cout
<<"?";
????}

????
for(int?k?=?1;?k?<=?(mid?-?j)?*?2?+?1;?k++)?{
????cout
<<"*";
????}

????cout
<<"\n";
}

?

?

三、所有代碼:

?

代碼 //GeometryTest.cpp
//powered?by?Alan
//2010.09.18

#include
<iostream>

using?namespace?std;

//畫三角形
void?DrawTri();
//畫菱形
void?DrawDia();

int?main()?{
????
int?type?=?0;
????
????cout
<<"選擇您需要的圖形:\n";
????cout
<<"???1.三角形\n";
????cout
<<"???2.菱形\n";
????
????cin
>>type;
????
????
while(!(cin.good()?&&?type?==?1?||?type?==?2))?{
????????cin.clear();
????????cin.ignore(
1024,'\n');
????????cout
<<"輸入的圖形類型不正確重新輸入:\n";
????????cin
>>type;
????}?
????
????
switch(type)?{
????????
case?1:
????????????DrawTri();
????????????
break;
????????
case?2:
????????????DrawDia();
????????????
break;
????????
default:
????????????cout
<<"輸入的圖形類型不正確重新輸入:\n";
????????????
break;
????}
????
????
????
return?0;
}

void?DrawTri()?{
????
//記錄層數
????int?layer?=?0;
????
????cout
<<"輸入層數:\n";
????cin
>>layer;
????
while(!(cin.good()?&&?layer?>?1))?{
????????????cin.clear();
????????????cin.ignore(
1024,'\n');
????????????cout
<<"輸入的層數類型不正確或層數小于2,請重新輸入:\n";
????????????cin
>>layer;
????}
????
????cout
<<layer<<"層三角形:\n";
????
for(int?i?=?1;?i?<=?layer;?i++)?{
????????
for(int?j?=?1;j?<=?(layer?-?i);?j++)?{
????????????cout
<<"?";
????????}
????????
for(int?k?=?1;?k?<=?(i?-?1)?*?2?+?1;?k++)?{
????????????cout
<<"*";
????????}
????????cout
<<"\n";
????}
????
}

void?DrawDia()?{
????
//記錄層數
????int?layer?=?0;
????
//記錄中間層
????int?mid;
????
????cout
<<"輸入層數:\n";
????cin
>>layer;
????
while(!(cin.good()?&&?layer?>?3?&&?(layer%2?!=?0)))?{
????????????cin.clear();
????????????cin.ignore(
1024,'\n');
????????????cout
<<"輸入的層數類型不正確或層數小于3或層數不為基數,請重新輸入:\n";
????????????cin
>>layer;
????}
????
????mid?
=?(layer?+?1)/2;
????
????cout
<<layer<<"層菱形:\n";
????
for(int?i?=?1;?i?<=?layer;?i++)?{
????????
int?j;
????????
????????
for(j?=?1;j?<=?abs(i?-?mid);?j++)?{
????????????cout
<<"?";
????????}
????????
for(int?k?=?1;?k?<=?(mid?-?j)?*?2?+?1;?k++)?{
????????????cout
<<"*";
????????}
????
????????cout
<<"\n";
????}
}

?

?

轉載于:https://www.cnblogs.com/icescut/archive/2010/09/22/triangle_diamon.html

總結

以上是生活随笔為你收集整理的控制台打印三角形、菱形的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。