为什么结果是这样的,按着我的代码该怎么改,哪里有错
#include
using namespace std;
struct stu
{
int xh;
char name[20];
int c[3];
};
struct stu d[100];
int main()
{
int n,i,j;
cin>>n;
for(i=0;i>d[i].xh>>d[i].name;
for(j=0;j<3;j++)
{
cin>>d[i].c[j];
}
}
int t=0,e=0;
for(i=1;i<+n;i++)
{
int sum=0;
for(j=0;j<3;j++)
{
sum=d[i].c[j]+sum;
}
if(sum>t)
{
t=sum;
e++;
}
}
for(i=0;iif(i==e)
{
cout<" "<" ";
for(j=0;j<3;j++)
{
cout<" ";
}
}
}
return 0;
}
给你写一个吧
#include <bits/stdc++.h>
using namespace std;
struct Student {
string id;
string name;
int grade[3];
int sum;
};
int n;
vector<Student> stu;
int main() {
cin >> n;
stu.resize(n);
for (int i = 0; i < n; i++) {
cin >> stu[i].id >> stu[i].name;
stu[i].sum = 0;
for (int j = 0; j < 3; j++) {
cin >> stu[i].grade[j];
stu[i].sum += stu[i].grade[j];
}
}
int max_sum = -1, max_idx = -1;
for (int i = 0; i < n; i++) {
if (stu[i].sum > max_sum) {
max_sum = stu[i].sum;
max_idx = i;
}
}
cout << stu[max_idx].id << " " << stu[max_idx].name << " " << stu[max_idx].grade[0] << " " << stu[max_idx].grade[1] << " " << stu[max_idx].grade[2] << endl;
return 0;
}
以下答案引用自GPT-3大模型,请合理使用:这个问题比较复杂,需要具体分析代码的情况。
该回答引用ChatGPT
参考下面的代码
#include<bits/stdc++.h>
using namespace std;
struct student{
string id;
string name;
int grade[3];
};
bool cmp(student a,student b){
return a.grade[0]+a.grade[1]+a.grade[2]>b.grade[0]+b.grade[1]+b.grade[2];
}
int main(){
int n;
cin>>n;
student s[n];
for(int i=0;i<n;i++){
cin>>s[i].id>>s[i].name>>s[i].grade[0]>>s[i].grade[1]>>s[i].grade[2];
}
sort(s,s+n,cmp);
cout<<s[0].id<<' '<<s[0].name<<' '<<s[0].grade[0]<<' '<<s[0].grade[1]<<' '<<s[0].grade[2];
return 0;
}