C++输入输出 OJ题

259 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

题目描述

某教学系统发生故障,导致输入的学生信息混杂一起

在一行输入的数据中混杂了各种学生信息,包括学号(int)、性别(单个字母)、姓名(字符串)、绩点(浮点数)

要求使用C++的cin和cout编写一个程序,能够把混杂数据根据要求分成多行输出

使用C++标准输入输出的头文件为

#include <iostream>

using namespace std;

输入

在一行中依次输入两个学号、一个性别、一个姓名、一个成绩

输出

按姓名、学号、性别、成绩分成四行输出,其中浮点数精确到小数点后1位

输入样例1

152101 153001 M tony 3.249

输出样例1

tony
152101 153001
M
3.2

思路分析

注意考察C++输入输出流控制知识。 C++对于含小数的实数默认输出六位有效位,这显然不能满足我们的需要。 因此我们要用控制符控制输入输出。 C++中控制输出位数要用到setprecision(n),要包含头文件iomanip,但是单单使用setprecision(n),控制的是输出的总位数,如果要控制输出小数的位数,需要加上fixed来限制。

关于C++输入输出的系统知识可以参考另一篇文章C++的输如输出I/O流控制

具体到这道题,不需要手动四舍五入,单单使用C++的控制输出就可以了。

AC代码

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int num1,num2;
	double GPA;
	char sex,name[20];
	cin>>num1>>num2>>sex>>name>>GPA;
	cout<<name<<endl<<num1<<' '<<num2<<endl<<sex<<endl<<fixed<<setprecision(1)<<GPA;
}