有没有大佬帮忙看看
查看原帖
有没有大佬帮忙看看
1627896
loong0905楼主2025/1/1 22:26
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct 
{
    int chinese;
    int math;
    int english;
    char name[9];
}student;
student students[1005]; 
char rival[1005][2][9];
int panduan(student a,student b)
{
    int m=abs(a.chinese-b.chinese);
    int n=abs(a.english-b.english);
    int q=abs(a.math-b.math);
    if(m<=5&&n<=5&&q<=5&&m+n+q<=10)
    {
        return 1;
    }
    return 0;
}
int compare(const void *a,const void*b)
{
    const char(*rivala)[9]=a;
    const char(*rivalb)[9]=b;
    int i=strcmp(rivala[0],rivalb[0]);
    if(i!=0)
    {
        return i;
    }
    return strcmp(rivala[1],rivalb[1]);
}
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s %d %d %d",students[i].name,&students[i].chinese,&students[i].math,&students[i].english);
    }

    int count=0;
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(panduan(students[i],students[j]))
            {
                if(strcmp(students[i].name,students[j].name)<0)
                {
                   strcpy(rival[count][0],students[i].name);
                   strcpy(rival[count][1],students[j].name);
                }
                else {
                   strcpy(rival[count][0],students[j].name);
                   strcpy(rival[count][1],students[i].name);
                }
                count++;
            }
        }
    }
    qsort(rival,count,sizeof(rival[0]),compare);
    for(int i=0;i<count;i++)
    {
        printf("%s %s\n",rival[i][0],rival[i][1]);
    }
    return 0;
}
2025/1/1 22:26
加载中...