求求大佬告诉我为什么编译错误了

P1478 陶陶摘苹果(升级版)

lijiatu123 @ 2023-03-19 09:42:41


#include<bits/stdc++.h>
using namespace std;
typedef struct {
    int g,l;
} h;
int cmp(h p,h o) {
    return p.l<o.l;
}
int main() {
    int n,s,i,a,b;
    h q[10000]={0};
    cin>>n>>s;
    cin>>a>>b;
    for(i=1; i<=n; i++) {
        cin>>q[i].g>>q[i].l;
    }
    sort(q+1,q+n+1,cmp);
    for(i=1; i<=n; i++) {
        if((a+b)<q[i].g)
            continue;
        else {
            if(q[i]>s)
                break;
            else {
                s-=q[i].l;
            }
        }
    }
    printf("%d",i-1);

    return 0;
}

by Furthe77oad @ 2023-03-19 09:46:42

结构体用错了,可以考虑重写,重新梳理一遍思路就不会有问题了(逃


by lraM416 @ 2023-03-19 09:56:34

奇怪的结构体用法


by Terrible @ 2023-03-19 10:09:37

if(q[i]>s)是结构体和整数的比较,没有重载运算符,因而会报错。

另外,在 C++ 里,不需要特别使用typedef更改结构体名称。


by Terrible @ 2023-03-19 10:10:08

你本地编译通过了吗?


by Lysea @ 2023-03-19 10:13:58

struct node{
    int g,l;
}h;

by Lysea @ 2023-03-19 10:14:09

@lijiatu123


by Lysea @ 2023-03-19 10:15:27

h不是结构体的名字,而是结构(


by LIhixuan @ 2023-03-19 12:32:02

什么结构体?? 改一下


|