橙橙橙橙166 2022-06-23 15:00 采纳率: 85.2%
浏览 33
已结题

c++结构体qsort


#include<iostream>
#include<iomanip>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<stdio.h>
#include<algorithm>
#include<cmath>
using namespace std;
struct stu{
    string name;
    int li;
    int shi;
}student[1010];
int cmp(const void*x,const void*y){
    struct stu* xx = (struct stu*)x;
    struct stu* yy = (struct stu*)y;
    return (yy->li+yy->shi)-(xx->li+xx->shi);
}
int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        
        for(int i=0;i<n;i++){
            cin>>student[i].name>>student[i].li>>student[i].shi;
        }
        qsort(&student[0], sizeof(student) / sizeof(student[0]), sizeof(student[0]), cmp);
        
        for(int j=0;j<n;j++){
            cout<<student[j].name<<endl;
        }
    }
    
}

为什么这会有问题?

img

  • 写回答

1条回答 默认 最新

  • 浪客 2022-06-23 15:54
    关注
    
    struct stu
    {
        char name[20]; //string name
        int li;
        int shi;
    };
    
    int cmp(const void *x, const void *y)
    {
        struct stu *xx = (struct stu *)x;
        struct stu *yy = (struct stu *)y;
        return (yy->li + yy->shi) - (xx->li + xx->shi);
    }
    int main()
    {
        int t;
        cin >> t;
        while (t--)
        {
            int n;
            cin >> n;
            struct stu *student = new struct stu[n];
    
            for (int i = 0; i < n; i++)
            {
                cin >> student[i].name >> student[i].li >> student[i].shi;
            }
            qsort(student, n, sizeof(stu), cmp);
    
            for (int j = 0; j < n; j++)
            {
                cout << student[j].name << endl;
            }
            delete student;
        }
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月1日
  • 已采纳回答 6月23日
  • 创建了问题 6月23日

悬赏问题

  • ¥15 MAC安装佳能LBP2900驱动的网盘提取码
  • ¥400 微信停车小程序谁懂的来
  • ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
  • ¥15 安装ubantu过程中第一个vfat 文件挂载失败
  • ¥20 GZ::CTF如何兼容一些靶机?
  • ¥15 etcd集群部署问题
  • ¥20 谁可以帮我一下问一下各位
  • ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
  • ¥150 求 《小魔指》街机游戏机整合模拟软件
  • ¥20 你好,我想问下easyExcel下拉多选,或者复选框可以实现吗