PTA 乙级 1072 开学寄语 (20分) C++

 测试点2:问题物品四位输出的零位补齐

思路:输入即检测,检测出问题即输出,看代码吧

 1 #include<iostream>
 2 #include<vector>
 3 
 4 using namespace std;
 5 
 6 int main() {
 7     int n = 0, m = 0;
 8     /*问题学生,问题物品总数*/
 9     int pro_stu = 0, pro_obj = 0;
10     /*问题物品标记*/
11     int obj[10000] = { 0 };
12     /*姓名输出标志位*/
13     int flag = 1;
14     cin >> n >> m;
15     for (int i = 0; i < m; ++i) {        //标记问题物品
16         int tmp = 0;
17         cin >> tmp;
18         obj[tmp] = 1;
19     }
20     for (int i = 0; i < n; ++i) {
21         string name;
22         int k = 0;
23         cin >> name >> k;
24         for (int j = 0; j < k; ++j) {
25             int tmp = 0;
26             cin >> tmp;
27             if (obj[tmp]) {
28                 if (flag) {                //没有输出过姓名
29                     cout << name << ":";
30                     flag = 0;
31                     pro_stu++;
32                 }
33                 printf(" %04d", tmp);    //注意物品不满四位的0补齐
34                 pro_obj++;
35             }
36         }
37         if(!flag) cout << endl;            //输出过问题学生则回车换行
38         flag = 1;
39     }
40     cout << pro_stu << ' ' << pro_obj;
41     return 0;
42 }

原文地址:https://www.cnblogs.com/SCP-514/p/13650270.html