社区讨论

80分,第二个测试点wa

P5738【深基7.例4】歌唱比赛参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lv5az698
此快照首次捕获于
2024/04/18 21:54
2 年前
此快照最后确认于
2024/04/19 12:30
2 年前
查看原帖
C
#include <stdio.h>
double scores(double arr[][20], int y, int m)//数组,某行,评委人数
{
	double min = arr[0][0];
	double max = arr[0][0];
	double sum = 0;
	for (int i = 0; i < m; i++)
	{
		if (max < arr[y][i])
		{
			max = arr[y][i];
		}
		if (min > arr[y][i])
		{
			min = arr[y][i];
		}
	}
	for (int i = 0; i < m; i++)
	{
		sum = sum + arr[y][i];
	}
	double result = (sum - max - min) / ((m - 2) * 1.0);
	return result ;
}
int main()
{
	int n = 0;
	int m = 0;
	double arr[100][20] = { 0 };
	double score[100] = { 0 };
	double max = 0;
	scanf("%d %d", &n, &m);
	for(int i=0;i<n;i++)
		for (int j = 0; j < m; j++)
		{
			scanf("%lf", &arr[i][j]);
		}
	for (int i = 0; i < n; i++)
	{
		score[i] = scores(arr, i, m);
	}
	for (int i = 0; i < n; i++)
	{
		if (score[i] > max)
		{
			max = score[i];
		}
	}
	printf("%.2lf", max);
	return 0;
}
求大佬帮忙看看,第二个测试点错了,正确输出是7.39,我的输出是7.44,我好像数据类型都用的double,不知道为什么精度还是不够。

回复

0 条回复,欢迎继续交流。

正在加载回复...