见路不走


私信TA

用户名:dotcpp0608613

访问量:4602

签 名:

等  级
排  名 781
经  验 3756
参赛次数 0
文章发表 21
年  龄 0
在职情况 学生
学  校 USTC
专  业

  自我简介:

解题思路:定义结构-输入-冒泡排序-输出

注意事项:注意面试分数线和面试分数线对应的那个序号,然后是进去面试的实际人数之间的关系

参考代码:

#include<stdio.h>

#include<math.h>

typedef struct student{

    int id;

    int mark;

}stu;

    stu a[5001];

    stu temp[5001];

  

int main()

{

    int n,m,mian,i,j,k,p,q,s=0;

    scanf("%d %d\n",&n,&m);

    mian=floor(m*1.5);//向下取整函数


    for(i=0;i<n;i++)

    {

        scanf("%d %d\n",&a[i].id,&a[i].mark);

    }

    for(j=1;j<i;j++)

    {

        for(k=0;k<i-j;k++)

        {

            if(a[k+1].mark>a[k].mark)

            {

               temp[1]=a[k+1];

               a[k+1]=a[k];

               a[k]=temp[1];

            }

            else if(a[k+1].mark==a[k].mark)

            {

                if(a[k+1].id<a[k].id)

                {

                    temp[1]=a[k+1];

                    a[k+1]=a[k];

                    a[k]=temp[1];   

                }

            }

        }

        

    }

    for(p=0;p<i;p++)

    {

        if(a[p].mark>=a[mian].mark)

        s++;

    }

    printf("%d %d\n",a[mian].mark,s);

    for(q=0;q<s;q++)

    {

        printf("%d %d\n",a[q].id,a[q].mark);

    }

    return 0;

}


 

0.0分

2 人评分

  评论区

  • «
  • »