| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3248 人关注过本帖
标题:歌唱比赛评分问题,请教!
只看楼主 加入收藏
oxl1984
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-20
收藏
 问题点数:0 回复次数:6 
歌唱比赛评分问题,请教!

在歌手比赛中有10名评委打分,分数采用百分制,歌手的最后得分是:10名评委的评分中,去掉一个最高分,去掉一个最低分,统计其总分,再统计其总分,再除于8.试编程序一个歌手的最后得分


下面的程序没有限定100分制

如果要加入100分制这个条件,如何修改啊
高手们help!!!!

main()

{int i,j,min;

float temp,ave=0;

float a[11];

printf("\n输入评委所打的分数:\n");

for(i=1;i<=10;i++)

scanf("%f",&a[i]);

for(i=1;i<=9;i++)

{min=i;

for(j=i+1;j<=10;j++)

if(a[min]>a[j])

min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

for(i=2;i<=9;i++)
ave=ave+a[i];

printf("选手所得最后分数:%6.1f",ave/8);

printf("\n");

}

搜索更多相关主题的帖子: Roman Times face 
2006-03-20 23:08
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

这个我曾经编过,不过题目加了"求出最接近平均分和最远离平均分"的条件.代码如下:

#include<stdio.h>
#include<math.h>
int
main(void)
{
float score[10]; /*定义一个包含10个数的数组*/
int i; /*定义变量I*/
int max;/*定义变量MAX,用于存数组中最大的那个数*/
int min;/*定义变量MIN,用于存数组中最小的那个数*/
float average;/*定义10个数的平均数average*/
float sum=0,left_sum;/*定义10个数的和sum,定义除去两个指定数值余下的和left_sum*/
float best_score,worst_score;/*best_score是离平均分最接近的那个数,worst_score是离平均分最远的那个数*/
/*定义cha来存数组中的数值减去平均分后的值*******************
**smallest_cha来存数组中的数减去平均分的差数值最小的那个数**
**bigest_cha来存数组中的数减去平均分的差数值最大的那个数***/
float cha,smallest_cha,biggest_cha;
printf("Please input ten scores(0--100) :\n");/*提示输入数组的10个数的大小*/
for(i=0;i<10;i++)
scanf("%f",&score[i]);/*依次输入数组中每个数的数值*/
for(i=0;i<10;i++)
sum+=score[i];/*把10个数的数值相加存到SUM里面*/
max=score[0];/*假定score[0]为数组中最大的那个数*/
min=score[0];/*假定score[0]为数组中最小的那个数*/
/*10个数依次比较大小*/
for(i=1;i<10;i++)
{
if(score[i]>=max)
max=score[i];
else if(score[i]<=min)
min=score[i];
}
left_sum=sum-max-min;/*变量left_score等于总和减去两个指定的数*/
average=left_sum/8;/*average是余下8个数数值的平均*/
/*打印最大的数和最小的数*/
printf("The max score is %d.\n",max);
printf("The min score is %d.\n",min);
printf("The average score is:");
printf("%f\n",average);/*打印平均分数*/
best_score=score[0];/*假定score[0]为最接近平均分的那个数*/
worst_score=score[0];/*假定score[0]为最偏离平均分的那个数*/
smallest_cha=score[0]-average;/*假定smallest_cha是(score[0]-average)的值*/
biggest_cha=score[0]-average;/*假定biggest_cha是(score[0]-average)的值*/
/*如果smallest_cha,biggest_cha小于或等于0**
**则取它们的相反数*************************/
if(smallest_cha<=0)
{
smallest_cha=-smallest_cha;
biggest_cha=-biggest_cha;
}
/*依次比较,筛选出best_score,worst_score*/
for(i=1;i<10;i++)
{
cha=score[i]-average;
if(cha<=0)
cha=-cha;
if(cha<=smallest_cha)
{
best_score=score[i];
smallest_cha=cha;
}
else if(cha>=biggest_cha)
{
worst_score=score[i];
biggest_cha=cha;
}
}
/*打印best_score,worst_score的值*/
printf("The best_score is %f.\n",best_score);
printf("The worst_score is %f.\n",worst_score);
return 0;/*函数返回0,表示结束*/
}


我的原则很简单:不做不喜欢的事!
2006-03-20 23:26
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
如果加入100分这个条件就用loop:if再加goto语句就可以,输入不在100这个范围内就跳出重新输入.

我的原则很简单:不做不喜欢的事!
2006-03-20 23:29
烟灰洒落
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-3-20
收藏
得分:0 

要不可以先求出总分(十个人所打的分),然后减去最高分+最低分再/8
不过写代码好象有点长..呵呵..

2006-03-20 23:31
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

[CODE]
#include "stdio.h"
#include "conio.h"

void main()
{
float a[10],min,max,avescore=0;
int i;

printf("please input scores:\n");
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
if(a[i]>100||a[i]<0)
i--;
}

min=max=a[0];
for(i=0;i<10;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
for(i=0;i<10;i++)
avescore+=a[i];
printf("The averagescore is %f !\n",(avescore-min-max)/8);
getch();
}

[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-21 00:31
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
二楼可以用绝对值函数fabs()
还有一点,二楼实际上没有达到楼主的效果。还是可以输入大于100的数小于0的数。

2006-03-21 16:38
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用cordier在2006-3-21 16:38:00的发言:
二楼可以用绝对值函数fabs()
还有一点,二楼实际上没有达到楼主的效果。还是可以输入大于100的数小于0的数。

谢谢.
C中的库函数我真要好好利用,对许多函数我都不知道怎么用.
我在三楼已经说啦``可以用LOOP->IF->GOTO语句来实现.


我的原则很简单:不做不喜欢的事!
2006-03-21 16:45
快速回复:歌唱比赛评分问题,请教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017260 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved