1003:对齐输出
时间限制: 1000 ms 内存限制: 66536 KB
提交数: 320051 通过数: 106753
【题目描述】
读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。
【输入】
只有一行,包含三个整数,整数之间以一个空格分开。
【输出】
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
【输入样例】
123456789 0 -1
【输出样例】
123456789 0 -1
思路:
我们先来捋一捋题目,什么叫每个整数占8个字符的宽度呢?
比如说,我有一个数字5,为了每个整数占8个字符的宽度,我就要输出
5[空格][空格][空格][空格][空格][空格][空格](5后面7个空格)
如果是7个字符,就是这样:
5[空格][空格][空格][空格][空格][空格](5后面6个空格)
如果数字是100,就是这样:
100[空格][空格][空格][空格](100后面4个空格)
正常来说,我们是不能这样对齐的,但是,只要用那个函数就可以了......
没错,他就是setw
让我来讲解一下,他是怎么用的:
如果我想要每个整数占8个字符的宽度,那我要这样写:
cpp
cout<<setw(8)<<a;
这里注意了,如果你要输出多个整数占8个字符的宽度,那你就不能只写一个setw
cpp
cout<<setw(8)<<a<<' '<<setw(8)<<b<<' '<<setw(8)<<c;
如果你要输出多个整数,就要这样写,一个setw只能让一个数字占8个字符,如果你要让五个数字占8个字符,你就要写五个setw
代码:
知道了setw,你应该就知道代码怎么写了吧?
cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
int a, b, c;
cin>>a>>b>>c;
cout<<setw(8)<<a<<' '<<setw(8)<<b<<' '<<setw(8)<<c;
return 0;
}