每个歌手可以看成一个对象,这样就可以建一个歌手的类,添加一些属性和get,set方法 ,主程序可以将路人的对象保存起来,评委打分可以通过循环来对每个歌手进行打分,将打好的分保存起来,进行数据处理,存到一个数组或者链表中,查找时可以通过输入编号得到对应的选手,再通过选手得到对应的分数;排序得分就更简单了,使用排序算法就可以解决,什么冒泡,快速排序都行的。。。楼主代码还得自己敲
#include "stdioh"
int main()
{
struct st
{
char name[10];
int cj[20];
double avage;
}std[50],t;
int m,n,i,j,k;
double max,min;
printf("输入选手人数:");
scanf("%d",&m);
printf("输入评委人数:");
scanf("%d",&n);
printf("输入%d个选手:",m);
for(i=0;i<m;i++)
scanf("%s",std[i]name);
for(i=0;i<m;i++)
{
printf("输入第%d个选手的%d个成绩:",i,n);
for(j=0;j<n;j++)
{
scanf("%d",&std[i]cj[j]);
}
}
//求平均
for(i=0;i<m;i++)
{
max=(double)std[i]cj[0];
min=(double)std[i]cj[0];
std[i]avage=(double)std[i]cj[0];
for(j=1;j<n;j++)
{
if(max<std[i]cj[j])
max=std[i]cj[j];
if(min>std[i]cj[j])
min=std[i]cj[j];
std[i]avage=std[i]avage+std[i]cj[j];
}
std[i]avage=(std[i]avage-max-min)/(double)(n-2);
}
//排序
for(i=0;i<m;i++)
{
for(j=m-1;j>i;j--)
{
if(std[j]avage>std[j-1]avage)
{
t=std[j];std[j]=std[j-1];std[j-1]=t;
}
}
}
for(i=0;i<m;i++)
{
printf("%s:%2lf\n",std[i]name,std[i]avage);
}
}
dimension 是建立数组的命令
下面是你要的代码
而且下面的话评委是不固定人数,你可以自己选择评委人数
如果你确定是10人的话把input "请输入评委人数:" to n 去掉
然后下面的n变为10
set talk off
clear
input "请输入评委人数:" to n
input "第1个评委的评分:" to x
mmax=x
mmin=x
s=x
for i=2 to n
input "第"+alltrim(str(i))+"个评委的评分:" to x
if x>mmax
mmax=x
endif
if x<mmin
mmin=x
endif
s=s+x
endfor
s=(s-mmax-mmin)/(n-2)
alltrim(str(n))+"个评委给出的最高分为:"+alltrim(str(mmax,5,1))
",最低分为:"+alltrim(str(mmin,5,1))
"去掉最高分、最低分后,该选手得分:"+alltrim(str(s,5,1))
set talk on
var max,min,hard,s:real;
i:longint;
a:array[15]of real;
begin
max:=0;
min:=maxlongint;
s:=0;
for i:=1 to 5 do begin
read(a[i]);
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
inc(s,a[i]);
end;
read(hard);
writeln((s-max-min)hard);
end
计算了5个人打分时候的情况
var max,min,hard,s:real,ans;
i:longint;
a:array[17]of real;
begin
max:=0;
min:=maxlongint;
s:=0;
for i:=1 to 7 do begin
read(a[i]);
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
inc(s,a[i]);
end;
read(hard);
ans := (s-max-min)hard;
writeln(ans/53);
end
计算了7个人打分时候的情况
import javautilScanner;
public class Grade {
public static void main(String[] args) {
Scanner scan = new Scanner(Systemin);
double arr[] = new double[5];
for (int i = 0; i < arrlength; i++) {
arr[i] = scannextDouble();
}
sort(arr);
average(arr);
}
public static void sort(double arr[]) {
for (int i = 0; i < arrlength; i++) {
double max = arr[0];
for (int j = i; j < arrlength; j++) {
if (arr[i] < arr[j]) {
double temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void average(double arr[]) {
double temp = 0, sum = 0;
for (int i = 1; i < arrlength - 1; i++) {
sum += arr[i];
temp = sum / (arrlength - 2);
}
Systemoutprintln(temp);
}
}
以上就是关于一个java歌唱比赛评分应用程序,急需,明晚上10点截至全部的内容,包括:一个java歌唱比赛评分应用程序,急需,明晚上10点截至、设计C语言程序共有M个选手参加比赛,N个评委进行打分,从键盘输入M个选手的各N个成绩(按照先输入第一个、有谁会校园比赛评分程序啊(用VFP)要求是十个评委:除掉最高分,最低分计算最后选手平均分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)