aciel @ 2022-12-29 17:57:38
#include <stdio.h>
int sum[301],num[301],yuwen[301],eng[301],math[301];
int main()
{
int n;//n为学生人数
scanf("%d",&n);
//输入各科成绩 学号 计算总分,用数组进行储存
for(int i=0;i<n;i++){
scanf("%d %d %d",&yuwen[i],&math[i],&eng[i]);
num[i]=i+1;//赋值学号,下标从1开始
sum[i]=0;//每次赋值为0,细节
sum[i]+=yuwen[i]+math[i]+eng[i];
}
//进行排序
int temp=0;
for(int i=0;i<n-1;i++){
for (int j=0;j<n-1-i;j++){
if(sum[j+1]>sum[j]){
temp=sum[j+1];
sum[j+1]=sum[j];
sum[j]=temp;
//排完总分后 语文和学号也变
temp=yuwen[j+1];
yuwen[j+1]=yuwen[j];
yuwen[j]=temp;
temp=num[j+1];
num[j+1]=num[j];
num[j]=temp;
}
//总分相同时
if(sum[j]==sum[j+1]){
if(yuwen[j+1]>yuwen[j]){
temp=yuwen[j+1];
yuwen[j+1]=yuwen[j];
yuwen[j]=temp;
temp=num[j+1];
num[j+1]=num[j];
num[j]=temp;
}
if(yuwen[j+1]==yuwen[j])
{
if(num[j+1]<num[j])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}
}
for(int i=0;i<5;i++){
printf("%d %d\n",num[i],sum[i]);
}
return 0;
}
by 违规用户名690561 @ 2022-12-29 18:17:40
倒数第4行的printf输出两个%d之间多打了一个空格
#include <stdio.h>
int sum[301],num[301],yuwen[301],eng[301],math[301];
int main()
{
int n;//n为学生人数
scanf("%d",&n);
//输入各科成绩 学号 计算总分,用数组进行储存
for(int i=0;i<n;i++){
scanf("%d %d %d",&yuwen[i],&math[i],&eng[i]);
num[i]=i+1;//赋值学号,下标从1开始
sum[i]=0;//每次赋值为0,细节
sum[i]+=yuwen[i]+math[i]+eng[i];
}
//进行排序
int temp=0;
for(int i=0;i<n-1;i++){
for (int j=0;j<n-1-i;j++){
if(sum[j+1]>sum[j]){
temp=sum[j+1];
sum[j+1]=sum[j];
sum[j]=temp;
//排完总分后 语文和学号也变
temp=yuwen[j+1];
yuwen[j+1]=yuwen[j];
yuwen[j]=temp;
temp=num[j+1];
num[j+1]=num[j];
num[j]=temp;
}
//总分相同时
if(sum[j]==sum[j+1]){
if(yuwen[j+1]>yuwen[j]){
temp=yuwen[j+1];
yuwen[j+1]=yuwen[j];
yuwen[j]=temp;
temp=num[j+1];
num[j+1]=num[j];
num[j]=temp;
}
if(yuwen[j+1]==yuwen[j])
{
if(num[j+1]<num[j])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}
}
for(int i=0;i<5;i++){
printf("%d %d\n",num[i],sum[i]);
}
return 0;
}
by 违规用户名690561 @ 2022-12-29 18:18:20
@aciel
修改后已AC
by aciel @ 2022-12-29 18:58:36
@tzxxzt 感谢!