C++ 电话号码分类:按城市排序并保留原序
C++ 电话号码分类:按城市排序并保留原序
本代码使用 C++ 实现对来自 A、B、C 三个城市的电话号码进行分类输出。根据电话号码的第一位数字进行城市判断,并按 A、B、C 的顺序输出,同时保留相同地区的号码的原序。
输入
共二行。
- 第一行为一个正整数 n(n <= 100),表示朋友的数目。
- 第二行为 n 个八位电话号码(号码间以空格相隔)。
输出
共三行。格式如下:
- A: A 城朋友的电话号码(以空格相隔,如没有 A 城的,则空着)
- B: B 城朋友的电话号码(以空格相隔,如没有 B 城的,则空着)
- C: C 城朋友的电话号码(以空格相隔,如没有 C 城的,则空着)
代码示例
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a=0,b=0,c=0;//记录 A, B, C 城市电话号码的个数
for(int i=0;i<n;i++){
string num;
cin>>num;
if(num[0]=='8'){
a++;
cout<<num<<' ';
}
else if(num[0]=='5'){
b++;
cout<<num<<' ';
}
else if(num[0]=='2'){
c++;
cout<<num<<' ';
}
}
//输出空格占位符
for(int i=0;i<max(0,5-a);i++){
cout<<' ';
}
cout<<endl;
for(int i=0;i<max(0,5-b);i++){
cout<<' ';
}
for(int i=0;i<b;i++){
string num;
cin>>num;
cout<<num<<' ';
}
cout<<endl;
for(int i=0;i<max(0,5-c);i++){
cout<<' ';
}
for(int i=0;i<c;i++){
string num;
cin>>num;
cout<<num<<' ';
}
return 0;
}
代码说明
- 代码首先读取朋友的数目 n 和 n 个电话号码。
- 然后使用循环遍历所有电话号码,根据第一位数字判断城市,并输出该号码。
- 最后,使用循环输出空格占位符,保证每个城市输出的电话号码数量一致。
运行示例
输入
5
81234567 21234567 51234567 81234568 51234568
输出
A: 81234567 81234568
B: 51234567 51234568
C: 21234567
原文地址: https://www.cveoy.top/t/topic/opT1 著作权归作者所有。请勿转载和采集!