结构体新手,不会输入。

P2694 接金币

能否更具体的描述问题
by iiiiiyang @ 2023-01-31 10:10:11


@[wang0728](/user/738168) 两个帖子内容一样,代码一样,建议删掉一个,否则可能会被禁言。
by Xy_top @ 2023-01-31 10:12:19


@[forqprever](/user/739297) 一运行就会报错,并且出现一个c++内部的代码
by wang0728 @ 2023-01-31 10:15:39


@[Xy_top](/user/637796) 删除了
by wang0728 @ 2023-01-31 10:16:11


@[wang0728](/user/738168) 你内层的第二个循环也用了i,应该换成别的变量
by Asimplename @ 2023-01-31 10:16:28


@[wang0728](/user/738168) 你这结构体排序没加cmp啊……
by _xEr_ @ 2023-01-31 10:17:32


@[wang0728](/user/738168) 结构体不能直接排序,需要内部重载运算符或者写比较函数。
by Strelitzia_ @ 2023-01-31 10:18:28


@[wang0728](/user/738168) 在 ```cpp for(int i=1;i<=n;i++){ sort(a+1,a+1+n); } ``` 这句话中,应该改为: ```cpp sort(a+1,a+1+n,cmp); ``` 其中 cmp 为你自己写的排序函数比如: ```cpp bool cmp(s x,s y){ return x.y<y.y;//按 y 升序排序 } ```
by gesong @ 2023-01-31 10:20:25


cmp: ```cpp bool cmp(s a,s b){ return a.x<b.x;//按x从小到大排序 } ``` ```cpp bool cmp(s a,s b){ return a.y<b.y;//按y从小到大排序 } ``` 写好cmp,sort的形式为(a,a+n,cmp); 有一个巧妙地方法 < 是左小右大,所以是从小到大排序;> 是左大右小,所以是从大到小排序
by _xEr_ @ 2023-01-31 10:20:37


你需要给sort加一个cmp,改成类似下面这种格式 ``` inline bool cmp(s a,s b) { return a.x>b.x; //你需要的关键字排序方式 } //... sort(a+1,a+n+1,cmp); ```
by iiiiiyang @ 2023-01-31 10:20:39


| 下一页