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  
C++ 电话号码分类:按城市排序并保留原序

原文地址: https://www.cveoy.top/t/topic/opT1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录