新手村 MT1016 宽度与对齐(C++)

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的数据类型的时候,就很轻松。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值