本文为新手学习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输出:
不知道是什么的问题。