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")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)