问题六十八: 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。 选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。

/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)     
* 程序的版权和版本声明部分     
* All rights reserved.     
* 文件名称: txt.c     
* 作    者: liuyongshui     
* 问    题:  在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。
             选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
* 问题来源:  http://blog.csdn.net/sxhelijian/article/details/7304484
* 完成日期: 2013 年4 月22日     
* 版 本 号: V1.0     
*/    

#include <stdio.h>

#define num 10				//  十个评委
void  star(void);           //打印星号
void  sort(float score[]);    //从小到大排序

int main()
{     
	  int i;
	  float sum=0;
	  float average;
	  float score[10];

	  star();  //打印星号
	  
	  printf("请输入每个评委给您打的分数\n");
	  for(i=0; i<num; i++)
	  {   
		  printf("第%2d各评委打的分数为:", i+1);
	      scanf("%f", &score[i]);
	  }
	  
	  sort(score);

	  for(i=1; i<num-1; i++)   //求去最高最低分后的总分
	  {
	      sum+=score[i]; 
	  }
	  average=sum/8;     //求平均分
      
	  printf("\n去掉的最高分为:%0.2f\n", score[num-1]);
	  printf("\n去掉的最低分为:%0.2f\n", score[0]);
      printf("\n去掉最高分最低分后,您的总分为:%0.2f\n", sum);
	  printf("\n去掉最高分最低分后,您的平均分为:%0.2f\n", average);
      
	  printf("\n哈哈, 谢谢您的合作!\nGOOD BYE!\n");
      star();  //打印星号

	  return 0;
}

//排序函数
void sort(float score[])    //从小到大排序
{
    int i;
	int j;
    float t;  // 用于交换数

	for(i=0; i<num; i++)
	{
	    for(j=i; j<num; j++)   
		{
		    if(score[i]> score[j])   
			{
			   t= score[i];
			   score[i]= score[j];
			   score[j]=t;
			}
		}
	}
}
//star函数

void star(void)
{   
	int i;
    
	for(i=0; i<60; i++)
	{
		printf("*");
	}
	printf("\n");
}

    例如:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值