测试点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 }