C++编写数组,类似于评分器如何去解

  1. 语言10个裁判编号1-10给一个选手打分求最高分的裁判编号和最低分的裁判编号
  2. 猜数字


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
    int num[10];
    int max = -1, min = 101;
    int maxi = 0, mini = 0;
    printf("输入十个成绩\n");
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", num[i]);
        if (num[i]>max)
        {
            max = num[i];
            maxi = i;
        }
        if (num[i]<min)
        {
            min = num[i];
            mini = i;
        }
    }
    printf("最高分编号:%d", maxi+1);
    printf("最低分编号:%d", mini+1);
    return 0;
}
#include<iostream>
using namespace std;
int main()
{int a[10],f[10],i,k,m,n,b,c,y,p,q,d,average,h,g,hnum,lnum;
cout<<"输入十位评委按顺序的打分:";
for(i=0;i<10;i++)
{cin>>a[i];
}                              
for(b=0;b<10;b++)
{while(a[b]>100||a[b]<0)
{cout<<"选手得分超出规定范围,请第"<<b+1<<"位评委重新打分!"<<endl;
cin>>a[b];
}
}
m=a[0];n=a[0];
hnum = 0;lnum = 0;
for(k=0,c=0;k<9;k++)
{
 if(m<=a[k+1])  {
     m=a[k+1];
     lnum = k+1;
     }
 if(n>=a[k+1])  {
     n=a[k+1];
     hnum = k+1;
     }
 c=c+a[k];
}
c=c+a[9];
y=c-m-n;

average=y/8;
for(p=0;p<10;p++)
{f[p]=a[p]-average;
if(f[p]<0) {f[p]=-f[p];}
}
q=f[0];d=f[0];
for(k=0,h=1;k<9;k++)
{
 if(q<=f[k+1])  q=f[k+1] ,h=k+2;
 if(d>=f[k+1])  d=f[k+1],g=k+2;
}
cout<<"最高分评委是第"<<hnum<<"位评委。"<<endl;
cout<<"最低分评委是第"<<lnum<<"位评委。"<<endl;
cout<<"选手的平均分是"<<average<<endl;
cout<<"最公平评委是第"<<g<<"位评委。"<<endl;
cout<<"最不公平评委是第"<<h<<"位评委。"<<endl;
return 0;

}

运行结果为:

img

供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n = 10, i, max_order, min_order;
    float a, b, max, min, sum = 0;
    //scanf("%d", &n);         //输入裁判人数
    for (i = 1; i <= n; i++)
    {
        scanf("%f", &a);
        if (i == 1)
        {
            max = min = a;
            max_order = min_order = i;
        }
        else
        {
            if (max < a)
            {
                max = a;
                max_order = i;
            }
            if (min > a)
            { 
                min = a;
                min_order = i;
            }
        }
        sum = sum + a;
    }
    b = (sum - max - min) / (n - 2);//去掉一个最高分和最低分后求平均
    printf("去掉一个最高分和最低分后平均分:%.2f\n", b);
    printf("最高分:%.2f,裁判编号:%d\n", max, max_order);
    printf("最低分:%.2f,裁判编号:%d\n", min, min_order);
    return 0;
}