信息学奥赛一本通(c++版) 1003:对齐输出

【题目描述】

读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。

 

【输入】

只有一行,包含三个整数,整数之间以一个空格分开。

【输出】

只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。

【输入样例】

123456789 0 -1

【输出样例】

123456789       0      -1

最初我写的如下代码:
#include <iostream> 
#include <iomanip>
using namespace std;
int main(){ cout.setf(ios::right); //设置输出右对齐 int a,b,c; cin>>a>>b>>c; cout<<setw(8)<<a<<setw(8)<<b<<setw(8)<<c<<endl;//setw(8),使下一个输出按八字节对齐。 return 0; }

显示格式不对。因为题目需要输出之间需要空格,我不知道如何使用cout输出。

 

之后使用printf,就解决了:

#include <stdio.h>
int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%8d %8d %8d",a,b,c); return 0; }

 

总结:

  -> 使用g++编译器也可以正常编译执行如上c代码。

  -> 我还是不理解题目中要求的输出之间有空格是什么意思。

  -> c c++混用,能解出问题就行。

posted @ 2019-07-10 21:25  奇婆子  阅读(4787)  评论(1编辑  收藏  举报