代码问题,求解答
2025-11-02 17:16:14
发布于:浙江
各位编程大佬好!
我在自己编写学生分数排名代码(自创,无例题)时,遇到了代码无法正常输出(输出神秘字符)的情况.
如下图:

希望有大佬帮忙解答,衷心感谢!
代码:
#include<bits/stdc++.h>
using namespace std;
struct student{
string ID;
int Chinece,Mathematics,English,science;
int Total_Score;
}a[50];
int n;
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].ID>>a[i].Chinece>>a[i].Mathematics>>a[i].English>>a[i].science;
a[i].Total_Score=a[i].Chinece+a[i].Mathematics+a[i].English+a[i].science;
if(a[i].Total_Score>a[i-1].Total_Score){
swap(a[i].Total_Score,a[i-1].Total_Score);
swap(a[i].ID,a[i-1].ID);
swap(a[i].Chinece,a[i-1].Chinece);
swap(a[i].Mathematics,a[i-1].Mathematics);
swap(a[i].English,a[i-1].English);
swap(a[i].science,a[i-1].science);
}
else if(a[i].Total_Score==a[i-1].Total_Score){
if(a[i].Chinece>a[i-1].Chinece){
swap(a[i].Total_Score,a[i-1].Total_Score);
swap(a[i].ID,a[i-1].ID);
swap(a[i].Chinece,a[i-1].Chinece);
swap(a[i].Mathematics,a[i-1].Mathematics);
swap(a[i].English,a[i-1].English);
swap(a[i].science,a[i-1].science);
}
else if(a[i].Chinece==a[i-1].Chinece){
if(a[i].Mathematics>a[i-1].Mathematics){
swap(a[i].Total_Score,a[i-1].Total_Score);
swap(a[i].ID,a[i-1].ID);
swap(a[i].Chinece,a[i-1].Chinece);
swap(a[i].Mathematics,a[i-1].Mathematics);
swap(a[i].English,a[i-1].English);
swap(a[i].science,a[i-1].science);
}
else if(a[i].Mathematics==a[i-1].Mathematics){
if(a[i].English>a[i-1].English){
swap(a[i].Total_Score,a[i-1].Total_Score);
swap(a[i].ID,a[i-1].ID);
swap(a[i].Chinece,a[i-1].Chinece);
swap(a[i].Mathematics,a[i-1].Mathematics);
swap(a[i].English,a[i-1].English);
swap(a[i].science,a[i-1].science);
}
else if(a[i].English==a[i-1].English){
if(a[i].science>a[i-1].science){
swap(a[i].Total_Score,a[i-1].Total_Score);
swap(a[i].ID,a[i-1].ID);
swap(a[i].Chinece,a[i-1].Chinece);
swap(a[i].Mathematics,a[i-1].Mathematics);
swap(a[i].English,a[i-1].English);
swap(a[i].science,a[i-1].science);
}
}
}
}
}
}
for(int i=0;i<n;i++){
cout<<i<<": "<<a[i].ID<<" "<<a[i].Total_Score<<" "<<a[i].Chinece<<" "<<a[i].Mathematics<<" "<<a[i].English<<" "<<a[i].science<<endl;
}
return 0;
}
全部评论 1
可以给一下对应的输入吗,我看不出问题qaq
2天前 来自 江西
0输入:
1
chengcheng 97 98 99 100昨天 来自 浙江
0我知道了,当 i = 0 时,访问a[i - 1]是未定义行为,因此会输出乱码
昨天 来自 江西
0%%%
昨天 来自 上海
0
















有帮助,赞一个