1. 题目如下:

2. 解题思路:
输出一串东西,我们最好用遍历的方式去输出,于是想到先把题中三个数字放到一个整型数组中。要求输出宽度为5,并且分别左右对齐;这让我想到刚学习C语言时,输入输出格式会用到%nd:其中n代表输出宽度,如果实际数字长度 > n,则n无效;%-nd就是右对齐输出,上面那个没有负号就默认左对齐输出。但是我们这里不用C语言,尝试使用C++中的 setw() 来确定输出宽度,以及用 left / right 来确定是左对齐还是右对齐。
3. 知识点:
数组的定义,数组长度的获取,数组的遍历;C++特定的输入输出格式
4. 解题代码:
#include<bits/stdc++.h>
using namespace std;
int main( )
{
int numbers[] = {455, -123, 987654};
for(int num : numbers){
cout << setw(5) << left << num << ' ';
cout << setw(5) << right << num <<endl;
}
//也可用一下代码代替上面的for循环
// int length = sizeof(numbers) / sizeof(numbers[0]);
// for(int i = 0; i < length; i++){
// cout << setw(5) << left << numbers[i] << ' ';
// cout << setw(5) << right << numbers[i] <<endl;
// }
return 0;
}
5. 解题收获:
5.1 定义数组
最开始写成了 numbers = [455, -123, 987654];
最近也在学习python,弄混了
正确写法应该是 数据类型 变量名 = {}; 即 int numbers = {455, -123, 987654};
5.2 范围 for 循环
(不想码字了,AI写的太好了,直接上图)
5.3 C++特定的输入输出格式
看到解题代码也能明白,只是加了 << left / right 就可以保证 左 / 右 对齐,加了 << stew(n) 就可以让后面的输出宽度指定为 n ,C++我觉得这一点相较于C还是很方便的
另外提一嘴,如果看不懂,记不住某些函数(比如说 setw() )是什么意思,直接去查就行,我记忆这个 setw() 就记作了 set width,也就是设置宽度,一下子就记住啦。
5.4 获取数组长度
最开始直接在循环条件中写(int i = 0; i < numbers.length() ; i++),最后报错才发现不能这么写,好像又和python混了。
正确的写法是:
int length = sizeof( numbers ) / sizeof( numbers[0] );
注意:第一,被除数sizeof() 中是数组名 numbers,不能写成 sizeof( numbers[] ),别问我为什么知道这个错误;第二,除数建议写成 sizeof( numbers[0] ) 而不是 sizeof( int ) ,这样如果改变numbers的数据类型的时候,就很轻松。