60分求助,感觉思路很清晰了,小白找不到错误了(哭
查看原帖
60分求助,感觉思路很清晰了,小白找不到错误了(哭
1593676
KDofBIT楼主2024/12/3 16:45
#include<string.h>
#include <stdio.h>  
#include<stdlib.h> 
#include<math.h>
int cmp1(const void*a,const void*b){
	return(*(int*)a-*(int*)b);
}
int cmp2(const void*a,const void*b){
	return(*(double*)a-*(double*)b);
}
int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	double b=m-2;
	int a[n][m];
	double*c=(double*)malloc(n*sizeof(double));
	int i=0,j=0;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			scanf("%d",&a[i][j]);
		}
	}//储存所有歌手的数据 
	for(i=0;i<n;i++){
		qsort(&a[i],m,sizeof(int),cmp1);	double sum=0;
		for(j=1;j<m-1;j++){
			sum+=a[i][j];
		}
		c[i]=sum/b;//把每位歌手的平均分记录下来 
	}
		qsort(c,n,sizeof(double),cmp2);
		printf("%.2f\n",c[n-1]);//取最高分输出 
	free(c);
	 return 0;
}
2024/12/3 16:45
加载中...