求助大佬!样例过了但是0分
查看原帖
求助大佬!样例过了但是0分
811697
aciel楼主2022/12/29 17:57
#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;
}
2022/12/29 17:57
加载中...