社区讨论
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 条回复,欢迎继续交流。
正在加载回复...