数组问题。跳水比赛

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:19:31
跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现打分功能。
3. 找出评委中最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委,程序怎么实现。

cin >> points[i]; 如此的“>>”没学,请照顾我的水平

输入8个成绩,存a[8] 里
找出打最高分和最低分的数组下标。
循环,下标不等于最高分和最低分的下标的元素累加。
累加值除以6得平均值。
计算各分与平均值的差距的绝对值。
找出绝对值中最大最小的评委。

#include <stdio.h>
#include <math.h>

void main()
{
float a[8];
int id,ix;
int i;
float da,xiao;
float mean;

printf("please input 8 marks\n");
for (i=0;i<8;i++) scanf("%f", &a[i]);
id=0; ix=0;
da = a[0]; xiao=a[0];
for (i=0;i<8;i++){
if (a[i] < xiao) { xiao = a[i]; ix = i;};
if (a[i] > da){ da = a[i]; id = i;};
};

mean = 0.0;
for (i=0;i<8;i++){
if (i !=id && i != ix) mean=mean + a[i];
};
mean = mean / 6.0;
printf("mean=%f\n",mean);

id=0; ix=0;
da = fabs(a[0]-mean); xiao=fabs(a[0]-mean);
for (i=0;i<8;i++){
if ( fabs(a[i]-mean) < xiao) { xiao = fabs(a[i]-mean); ix = i;};
if ( fabs(a[i]-mean) > da){ da = fabs(a[i]-mean);