见路不走


私信TA

用户名:dotcpp0608613

访问量:4622

签 名:

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

  自我简介:

解题思路:定义结构,然后是输入题目要求,然后是根据要求进行判断,然后是采用冒泡法解决排序问题,最后是输出前五个.

注意事项:一定要注意等于号和双等于号在c语言当中的区别

参考代码:

#include<stdio.h>


typedef struct student{

    int id;

    int yu,shu,ying;

    int sum;

}stu;

    stu a[301];

    stu temp[301];

int main()

{

    int n,i,k,j,ID,p;

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

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

    {

        scanf("%d %d %d\n",&a[i].yu,&a[i].shu,&a[i].ying);

        a[i].sum=a[i].yu+a[i].shu+a[i].ying;

        a[i].id=i+1;

    }


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

    {

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

        {

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

            {

                /*temp=a[k+1].sum;

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

                a[k].sum=temp;

                

                ID=a[k+1].id;

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

                a[k].id=ID;*/

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

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

                a[k]=temp[5];

            }

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

            {

                if(a[k+1].yu>=a[k].yu)

                {

                /*temp=a[k+1].sum;

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

                a[k].sum=temp;

                

                ID=a[k+1].id;

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

                a[k].id=ID;*/

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

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

                a[k]=temp[5];

                }


            }

        }

        

    }


    

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

    {

        printf("%d %d\n",a[p].id,a[p].sum);

    }


    return 0;

}


 

0.0分

2 人评分

  评论区

/*temp=a[k+1].sum;
                a[k+1].sum=a[k].sum;
                a[k].sum=temp;
                ID=a[k+1].id;
                a[k+1].id=a[k].id;
                a[k].id=ID;*/                 大佬们这块代码为啥不能用
2023-02-16 11:37:46
  • «
  • 1
  • »