题目描述
小明有来自A、B、C三城市的n个朋友,现在要将他们的电话号码按A、B、C的顺序分类输出,但相同地区的号码则仍按原序输出。已知各城市电话号码的第一位是不同的:A城为8,B城为5,C城为2。
输入
共二行。第一行有一个正整数n(n<=100),表示朋友的数目。第二行是n个八位电话号码(号码间以空格相隔)。
输出
输出共三行。格式如下:
A:A城朋友的电话号码(以空格相隔,如没有A城的,则空着)
B:B城朋友的电话号码(以空格相隔,如没有B城的,则空着)
C:C城朋友的电话号码(以空格相隔,如没有C城的,则空着)
样例输入 Copy
3
85552088 22826558 82222205
样例输出 Copy
A:85552088 82222205
B:
C:22826558
题意
给定正整数n以及n个电话号码,第一位代表城市代码,A城为8,B城为5,C城为2,输出每个城市的人的电话号码
分析
由于n很小,最大为100,故直接枚举三次,分别输出A,B,C所具有的电话号码
分析点1:
电话号码的位数为8位,所以用int或者字符类型输入都可以,我是选择用int类型输入的。
分析点2:
开三个不同的数组,分别存储三个城市的电话号码。遍历每一个电话号码,通过首位的不同来判断这个数存储到哪个数组里。
代码
#include<bits/stdc++.h>using namespace std;const int N = 100 + 10;int n;
string s[N];int main(){ios::sync_with_stdio;cin.tie(0),cout.tie(0);cin >> n;for(int i = 0;i < n;i++) cin >> s[i];cout << "A:";for(int i = 0;i < n;i++)if(s[i][0] == '8') cout << s[i] << ' ';cout << endl << "B:";for(int i = 0;i < n;i++)if(s[i][0] == '5') cout << s[i] << ' ';cout << endl << "C:";for(int i = 0;i < n;i++)if(s[i][0] == '2') cout << s[i] << ' ';return 0;
}