通话记录

问题描述

使用3个队列,分别保留手机上最近10个,(0)未接来电、(1)已接来电、(2)已拨电话。

输入

全部通话记录,每行一条记录。

每条记录包含两个数字,第一个数代表记录类型,第二个数代表手机号码。

输出

分3列输出未接来电、已接来电、已拨电话。

列之间用空格分割,后接电话在最先输出,不足10条用0占位。

注:

1. 输入时用while,不要用for循环
2. 电话很长,用string比较方便
3. 直接在前面各加十个0,可以避免计数,判空

#include<iostream>
#include<stack>
using namespace std;
int main(){
	int n;
	string pn;
	stack<string> a,b,c;
	for(int i=0;i<10;i++){
		a.push("0");
		b.push("0");
		c.push("0");
	}
	while(cin>>n>>pn){
		if(n==0) a.push(pn);
		if(n==1) b.push(pn);
		if(n==2) c.push(pn);
	}
	for(int i=0;i<10;i++){
		cout<<a.top()<<" "<<b.top()<<" "<<c.top()<<endl;
		a.pop();
		b.pop();
		c.pop();
	}
	return 0;
}
上一篇:C++基础学习第一课(从C语言到C++)


下一篇:电路——三极管