哪位大佬给看看,样例和一个WA本地测试了都可以过,其他全是RE(代码有详细注释)
查看原帖
哪位大佬给看看,样例和一个WA本地测试了都可以过,其他全是RE(代码有详细注释)
547118
Music1907楼主2023/2/18 17:00

#include<bits/stdc++.h> 
using namespace std;

int main(){
	int n;
	cin>>n;
	int k=0;
	int* sum=(int*)malloc(n*sizeof(int));
	int* sum2=(int*)malloc(n*sizeof(int));//备用总分数组 
	
	string* s=(string*)malloc(n*sizeof(string*));//将学生名字用string数组保存起来 
	int **score=(int**)malloc(n*sizeof(int*));//学生各科分数用二维数组保存,这是动态申请二维数组 
	for(int i=0;i<n;i++){
		score[i]=(int*)malloc(sizeof(int)*3); 
	}
	//输入数据 
	for(int i=0;i<n;i++){
		scanf("%s",&s[i]);
		getchar();
		for(int j=0;j<3;j++){
				cin>>score[i][j];
				getchar();
		}
	
	}
	for(int i=0;i<n;i++){
	sum[i]=0;//初始化总分数组 为0 
	}
	
	
	for(int i=0;i<n;i++){
	for(int j=0;j<3;j++){
		sum[i]+=score[i][j];//对学生各科成绩加和,得到sum数组 ,并将值赋值给sum2备用 
		}
		sum2[i]=sum[i];
	}
	sort(sum,sum+n);//对sum内部进行排序,sum[n-1]为最大值 

	for(int i=0;i<n;i++){

		if(sum2[i]==sum[n-1]){//将最大分数值与sum2进行比较,得到第一个分值最大的学生下标k 
			k=i;
			break;
		}
	}
	//输出 
	printf("%s",&s[k]);
	cout<<' '<<score[k][0]<<' '<<score[k][1]<<' '<<score[k][2];
    return 0;
}
2023/2/18 17:00
加载中...