【问题描述】小张老师负责信息学院m(0<m<=100)个学生的k(1<k<=10)项体能测试,体能测试顺序按照编号来,学生测试完一项就在小张老师这里登记一次,现在小张老师手上有n(n<=m*k)个数据,需要根据学生登记的情况,判定出哪些学生还缺体能项目测试,缺的项目是哪一项,然后提醒这些学生尽快完成体能测试。学生编号1-m,体能项目编号1-k。
【输入形式】
输入的第一行包含3个整数n,m,k。
第二行包含n个整数,用空格分隔,分别表示n个整数。
【输出形式】
输出多行,每行输出还缺体能测试项目的学生的编号和缺的项目编号。
如果每个学生都完成了体能训练,就只有一行输出,输出0
【样例输入1】
9 6 2
2 2 1 3 5 6 5 6 3
【样例输出】
1 2
4 1 2
【样例说明1】
总共6个学生,2个项目根据输入进来的9个数据发现,2,3,5,6号同学都已经完成了2项体能测试,1号同学缺第2项,4号同学缺1,2两项
【样例输入1】
8 4 2
2 2 1 3 1 3 4 4
【样例输出】
0
【样例说明1】
每个学生都已经完成了体能测试,输出0
【评分标准】
标签:输出,xiangmu,cout,体能,int,样例,Hnu,测试 From: https://blog.csdn.net/2401_88485715/article/details/145030200#include<iostream>
using namespace std;
struct sudent{
int bianhao;
int xiangmu=0;
};
int main(){
int n,m,k,j;
cin>>n>>m>>k;
sudent*s=new sudent[m];
for(int i=0;i<m;i++){
s[i].bianhao=i+1;
}
for(int i=0;i<n;i++){
cin>>j;
s[j-1].xiangmu++;
}
int a=0;
for(int i=0;i<m;i++){
if(s[i].xiangmu!=k){
a=1;
cout<<s[i].bianhao<<" ";
for(int j=s[i].xiangmu+1;j<=k;j++){
cout<<j<<" ";
}
cout<<endl;
}
}
if(a==0){
cout<<"0"<<endl;
}
return 0;
}