没有给排序后的id初始化,导致没被赋值的id不走if的这一分支出错
#include<stdio.h>
#include<algorithm>
using namespace std;
const int T = 8;
struct sum {
int school;
int mum;
}time[10];
struct result {
int val;
int id;
}s[10];
bool compare(result &r1, result &r2) {
return r1.val < r2.val;
}
int main() {
for (int i = 0; i < 7; i++) {
scanf_s("%d %d", &time[i].school, &time[i].mum);
}
for (int i = 0; i < 7; i++) {
s[i].val = time[i].school + time[i].mum;
s[i].id = i + 1;
}
sort(s, s + 7, compare);
if (s[6].val <= T) {
printf("0");
return 0;
}
int ID = s[6].id, maxval = s[6].val;
for (int i = 6; i >= 1; i--) {
if (s[i].val == s[i - 1].val&&s[i].val == maxval)
ID = s[i - 1].id;
}
printf("%d", ID);
return 0;
}