-cfyjbjonn 2019-01-05 23:27 采纳率: 57.1%
浏览 566
已采纳

c语言结构体给歌手分数排序

题目如下第二个:
图片说明

#include<stdio.h>
#include <stdlib.h>

typedef struct result
{
    int num[10];
    int score[10];

}result;

void sorting(result *p)
{
    int i,j,k,temp;
    for(i = 0;i <9;i++)
    {
        k = i;
        for(j = i+1;j<10;j++)
        {
            if(p->score[i] < p->score[j])
            {
                k = j;
            }
        }
        if(k != i)
        {
            temp = p->score[j];
            p->score[j] = p->score[i];
            p->score[i] = temp;
        }
    }
}




int main()
{
    int i;
    result people;
    printf("input:\n");
    for(i = 0;i <10;i++)
    {
        scanf("%d %d",&people.num[i],&people.score[i]);
    }
    sorting(&people.score);
    for(i = 0;i < 10; i++)
    {
        printf(" %d %d\n",i,people.score[i]);
    }


}

请问哪里有问题?

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-01-06 00:22
    关注
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct result
    {
        int num[10];
        int score[10];
    
    }result;
    
    void sorting(result *p)
    {
        int i, j, k, temp;
        for (i = 0; i < 9; i++)
        {
            k = i;
            for (j = i + 1; j<10; j++)
            {
                if (p->score[k] < p->score[j])
                {
                    k = j;
                }
            }
            if (k != i)
            {
                temp = p->score[k];
                int t1 = p->num[k];
                p->score[k] = p->score[i];
                p->num[k] = p->num[i];
                p->score[i] = temp;
                p->num[i] = t1;
            }
        }
    }
    
    int main()
    {
        int i;
        result people;
        printf("input:\n");
        for (i = 0; i <10; i++)
        {
            scanf("%d %d", &people.num[i], &people.score[i]);
        }
        sorting(&people);
        for (i = 0; i < 10; i++)
        {
            printf(" %d %d\n", people.num[i], people.score[i]);
        }
    }
    
    
    

    input:
    1 1
    2 4
    3 2
    4 5
    5 1
    6 7
    7 1
    8 5
    9 9
    10 1
    9 9
    6 7
    4 5
    8 5
    2 4
    3 2
    7 1
    5 1
    1 1
    10 1
    Press any key to continue . . .

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊