Java程序填空。关于歌手大赛评分。

Java程序填空。关于歌手大赛评分。,第1张

public static int getMin(int []arr){

      int min=arr[0]

      for(int i=1i<arr.lengthi++){

      if(min>arr[i]){

      min=arr[i]

      }

      }

      return min

     }

public static int getSum(int []arr){

      int sum=0

      for(int a:arr){

      sum+=a

      }

      return sum

     }

public static int getScore(int []arr){

      return (getSum(arr)-getMax(arr)-getMin(arr))/(arr.length-2)

     }

     

int score[]={1,2,3,4,5,6,7,8,9,0}

getScore(score)

每个歌手可以看成一个对象,这样就可以建一个歌手的类,添加一些属性和get,set方法 ,主程序可以将路人的对象保存起来,评委打分可以通过循环来对每个歌手进行打分,将打好的分保存起来,进行数据处理,存到一个数组或者链表中,查找时可以通过输入编号得到对应的选手,再通过选手得到对应的分数;排序得分就更简单了,使用排序算法就可以解决,什么冒泡,快速排序都行的。。。楼主代码还得自己敲

//希望你看完采纳 谢谢

 #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") 

/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)    

* 程序的版权和版本声明部分    

* All rights reserved.    

* 文件名称: txt.c    

* 作    者: liuyongshui    

* 问    题:  在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。

             选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。

* 问题来源: 

* 完成日期: 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")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8177830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存