【洛谷B2005】字符三角形

本文介绍了如何用C++构建一个等腰三角形,使用字符作为边,以及在尝试使用printf函数时遇到的问题。作者分享了解答代码和关于C++字符串引号的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为新手学习C++的练习记录


题目

题目描述

给定一个字符,用它构造一个底边长 5 5 5 个字符,高 3 3 3 个字符的等腰字符三角形。

输入格式

输入只有一行,包含一个字符。

输出格式

该字符构成的等腰三角形,底边长 5 5 5 个字符,高 3 3 3 个字符。

样例 #1

样例输入 #1

*

样例输出 #1

  *
 ***
*****

提示

对于 100 % 100 \% 100% 的数据,输入的字符是 ASCII 中的可见字符。


解答

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    char str;
    cin >> str;
    cout << "  " << str << endl;
    cout << " " << str << str << str << endl;
    cout << str << str << str << str << str << endl;
	
	return 0;
}

代码注意事项

C++要用双引号!

之前一直写的是python,里面双引号单引号基本是一样的,但是在C++里面好像只能用双引号来框出字符串,单引号双引号引起的结果可如下代码所示:

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    cout << "单引号引的一个星号:" << '*' << endl;
    cout << "双引号引的一个星号:" << "*" << endl;
    cout << "单引号引的两个星号:" << '**' << endl;
    cout << "双引号引的两个星号:" << "**" << endl;
    cout << "单引号引的三个星号:" << '***' << endl;
    cout << "双引号引的三个星号:" << "***" << endl;
	
	return 0;
}

运行结果如下:

单引号引的一个星号:*   
双引号引的一个星号:*  
单引号引的两个星号:10794
双引号引的两个星号:**
单引号引的三个星号:2763306 
双引号引的三个星号:*** 

可以看见,在两个级以上的符号是,单引号就出错了。所以规劝大家打字符串别用单引号主要是用了单引号也不会报错【T_T】,半天半天都不知道自己错哪儿了。

用printf()(没成功,大家可以帮我看看哪儿有问题)

本来想要尝试一下printf()的版本的,但是用printf()一直不成功,下面是我的代码:

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    char str;
    cin >> str;
    printf("  %s\n", str);
	printf(" %s%s%s\n", str, str, str);
	printf("%s%s%s%s%s\n", str, str, str, str, str);
	
	return 0;
}

随便输入一个字符,输出都是空,还伴随着一点界面卡顿。

所以我又写了下面这个代码看看是什么的问题:

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    char str;
    cin >> str;
    cout << "cin输出:" << str << endl;
    printf("printf输出:%s", str);
	
	return 0;
}

输入:

*

输出如下:

cin输出:* 
printf输出: 

不知道是什么的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值