c++直角空心三角形_HDU - 2091 空心三角形 难度:C++入门 复杂度:简单

这篇博客介绍了一个简单的C++程序,用于绘制直角空心三角形。程序通过读取字符和行数,利用双重循环实现空格和字符的交替输出。在非首行的三角形前会添加一行空行。当读取到'@'字符时,程序结束。
摘要由CSDN通过智能技术生成

9b649dd79e74d63c0452cb02d763c7ad.png

比较简单,具体思路看代码注释。

要注意的是输出的空行要求。经过多番尝试得知可行的空行方案为:除了第一个三角形,其他三角形都在上方空一行。评测时输出和输入的顺序没有关系。输出@时跳出while循环即可。

7d8dbc6a645a28b3ca97ffb03fe13bc5.png

#include

using namespace std;

int main()

{

char str;

int n;

bool state = 0;//记录是不是第一个三角形,第一个三角形输出过后将此值改为1

while (cin >> str)

{

if (str == '@')break;

else

{

if(state==1)

cout << endl;

cin >> n;//输入行数

for (int i = 1; i <= n; i++)//循环行数次,i等于几就是第几行

{

for (int j = 1; j <= n - i; j++)//输出左方空格,n行时第i行输出n-i个

cout << " ";

if (i != n)//在没输出到最后一行时执行下方代码

{

for (int j = 1; j <= 2 * i - 1; j++)//循环2i-1次

{

if (j == 1 || j == 2 * i - 1)//在第一次循环和最后一次循环时输出str,其他次循环输出空格

cout << str;

else cout << " ";

}

}

else//在输出到最后一行时执行下方代码

{

for (int j = 1; j <= 2 * i - 1; j++)

cout << str;

}

cout << endl;

}

state = 1;

}

}

return 0;

}

要输出一个空心直角三角形,可以使用嵌套循环和条件语句来实现。以下是一个示例代码: ```c++ #include <iostream> using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { if (j == 1 || j == i || i == n) { cout << "*"; } else { cout << " "; } } cout << endl; } return 0; } ``` 这段代码会根据用户输入的n的值输出相应层数的空心直角三角形。在每一行的循环中,我们使用条件语句判断当前位置是否需要输出"*"或者空格。如果是三角形的边界或者最后一行,则输出"*";否则输出空格。这样就能够实现空心的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C++ 输出倒三角星号](https://blog.csdn.net/weixin_45122104/article/details/123314862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [HDU - 2091 空心三角形 难度C++入门 复杂度简单](https://blog.csdn.net/weixin_33249666/article/details/113892541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值