


#include <stdio.h>
#include <stdlib.h>
struct student
{
int number;
int de;
int cai;
int grade;
int sum=de+cai;
};
typedef struct student* man;
int com(const void *a, const void *b)
{
man s1 = *(man *)a;
man s2 = *(man *)b;
if (s1->grade != s2->grade) return s2->grade - s1->grade;
else if (s1->sum != s2->sum) return s1->sum - s2->sum;
else if (s1->de != s2->de) return s1->de - s2->de;
else if (s1->number != s2->number) return s2->number - s1->number;
else return 0;
}
int judge(man s, int c, int d)
{
if (s->cai < c || s->de < c) return 0;
else if (s->cai < d&&s->de < d) return 1;
else if (s->cai >= d && s->de < d) return 2;
else if (s->de >= d && s->cai < d) return 3;
else if (s->cai >= d && s->de >=d) return 4;
}
int main()
{
man a[100];
int b, c, d;
scanf_s("%d %d %d", &b, &c, &d,8888);
int i;
int flag = 0;
for (i = 0; i < b; i++)
{
man s = (man)malloc(sizeof(struct student));
scanf_s("%d %d %d", s->number, s->de, s->cai,8888);
if (s->grade=judge(a[i], b, c) )
{
a[flag] = s;
flag++;
}
free(s);
}
qsort(a, flag, sizeof( man), com);
printf("%d\n", flag);
for (int i = flag - 1; i >= 0; i--)
printf("%d %d %d\n",a[i]->number, a[i]->de, a[i]->cai);
system("pause");
return 0;
}
大佬们咋回事
p://img.ask.csdn.net/upload/201801/29/1517210935_834748.png)