5个人在玩游戏,每人抽5张牌,每张牌上都有一个大于0并且不大于1000的数字,根据每个人的牌上的质数数量进行由多到少排序,若质数数量相同则根据名字由小到大排序。
#include<bits/stdc++.h> using namespace std; struct node { string s; int num; }a[5]; bool isprime(int n) { if(n==1) return 0; if(n<=3) return 1; for(int i=2;i*i<=n;i++) { if(n%i==0) return 0; } return 1; } bool cmp(node a,node b) { if(_____(1)_____) return a.num>b.num; return a.s<b.s; } int main() { int k=0,m; while(k<5) { cin>>a[k].s; a[k].num=0; for(int i=0;i<5;i++) { cin>>m; if(_____(2)_______) a[k].num++; } k++; } _____(3)_______ for(int i=0;i<5;i++) { cout<<a[i].s<<endl; } }