鱼C论坛

 找回密码
 立即注册
查看: 2222|回复: 2

[已解决]结构体排序求助!!!

[复制链接]
发表于 2022-11-14 16:17:18 | 显示全部楼层 |阅读模式
20鱼币
在结构体进行排序前可以正常输出,排序之后点运行,输入数据之后会直接退出,有没有大佬可以帮我看看哪里出了问题,怎么解决?
#include<iostream>
#include<algorithm>
#include<string>
using std::string;
using namespace std;

struct Student{
        string id;
        int M;
        int m[15];
        int score=0;
}s[1010];

bool cmp(Student a,Student b){
        if(a.score == b.score)
                return a.id < b.id;
        return a.score > b.score;
}


int main() {
        int N, M, G;
        int m[15];
        while (scanf("%d %d %d", &N, &M, &G) != EOF) {
                int num = 0;
                if(N == 0)
                        break;
                for (int i = 0; i < M; i++)
                        scanf("%d", &m[i]);
                for (int i = 0; i < N; i++){
                        scanf("%s %d",&s[i].id,&s[i].M);
                        for(int j = 0; j < s[i].M; j++)
                                scanf("%d",&s[i].m[j]);
                }
                for (int i = 0; i < N; i++){
                        for(int j = 0; j < s[i].M; j++){
                                s[i].score += m[s[i].m[j] - 1];
                        }
                        if(s[i].score >= G){
                                num += 1;
                        }
                }
                printf("%d\n",num);
                sort(s, s+N, cmp);
                for(int i=0;i<num;i++){
                        printf("%s %d\n",&s[i].id,s[i].score);
                }
        } 
        return 0;
}

最佳答案
2022-11-14 16:17:19
看看这些有没有帮助
test.cpp:32:39: warning: format specifies type 'char *' but the argument has type 'std::string *' (aka 'basic_string<char> *') [-Wformat]
                        scanf("%s %d",&s[i].id,&s[i].M);
                               ~~     ^~~~~~~~
test.cpp:47:42: warning: format specifies type 'char *' but the argument has type 'std::string *' (aka 'basic_string<char> *') [-Wformat]
                        printf("%s %d\n",&s[i].id,s[i].score);
                                ~~       ^~~~~~~~
2 warnings generated.
微信图片_20221114161355.png
微信图片_20221114161532.png

最佳答案

查看完整内容

看看这些有没有帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-14 16:17:19 | 显示全部楼层    本楼为最佳答案   
看看这些有没有帮助
test.cpp:32:39: warning: format specifies type 'char *' but the argument has type 'std::string *' (aka 'basic_string<char> *') [-Wformat]
                        scanf("%s %d",&s[i].id,&s[i].M);
                               ~~     ^~~~~~~~
test.cpp:47:42: warning: format specifies type 'char *' but the argument has type 'std::string *' (aka 'basic_string<char> *') [-Wformat]
                        printf("%s %d\n",&s[i].id,s[i].score);
                                ~~       ^~~~~~~~
2 warnings generated.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-11-14 16:49:45 | 显示全部楼层
dolly_yos2 发表于 2022-11-14 16:27
看看这些有没有帮助

将 结构体中 id 的类型改为 char 解决了 谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 19:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表