#include<iostream> using namespace std; int main() { int d; int N;//朋友圈的个数 int ID[100][1000]; int k[100];//朋友圈中的人数 int M;//待查询人数 int Mid[10000];//待查询人的ID int p[10000] = { 0 };//记录待查寻人是否帅气 bool b1=false;//用于判断是否全都不帅气 int out[10000];//储存输出的数据 int c = 0; cin >> N; for (int i = 0; i < N; i++) { cin >> k[i]; int b = k[i]; for (int j = 0; j < b; j++) { cin >> ID[i][j]; } } cin >> M; for (int i = 0; i < M; i++) { cin >> Mid[i]; } //判断是否帅气 for (int i = 0; i < M; i++)//待查询人的ID { for (int j = 0; j < N; j++) //朋友圈数 { int a = k[j]; for (int k = 0; k < a; k++) //朋友圈的每个人 { if (Mid[i] == ID[j][k]) { p[i] = 1; } //如果朋友圈只有他一个人也是没朋友 if(a==1&&Mid[i]==ID[j][0]){ p[i]=0; } } } } for (int i = 0; i < M; i++) { //帅气 if (p[i] == 0) { out[c] = Mid[i]; c++; d = Mid[i];//当前要输出的值 b1 = true; bool t = true;//是否重复的判断 for (int i = 0; i < c-1; i++) { if (d == out[i]) { t = false; } } if(t&&c==1){ cout<<Mid[i]; } if (t&&c!=1) { cout <<" "<< Mid[i]; } } } if (!b1) { cout << "No one is handsome" << endl; } else{ cout<<endl; } return 0; }
主要问题在于判断是否有朋友分为两种情况
标签:int,7.18,Mid,cin,++,朋友圈,ID From: https://www.cnblogs.com/xuxingkai/p/17564424.html