10个评委,打分在88~100之间(含);去掉一个最高分和一个最低分,输出打分结果和平均值,C语言怎么编程?

2025-04-02 07:58:24
推荐回答(2个)
回答1:

代码文本:

#include "stdio.h"

#include

#include "time.h"

int main(int argc,char *argv[]){

int i,max_i,min_i;

double a[10],s;

srand((unsigned)time(NULL));

for(s=max_i=min_i=i=0;i<10;i++){

a[i]=(rand()%121+880)/10.0;//随机赋值88~100

if(a[max_i]

max_i=i;

else if(a[min_i]>a[i])//找最小值下标存mini

min_i=i;

s+=a[i];//求和

}

for(i=0;i<10;i++)//输出打分结果

printf(i==max_i || i==min_i ? "(%.1f)  " : "%.1f  ",a[i]);

printf("\nThe AVERAGE are %.2f\n",(s-a[max_i]-a[min_i])/8);//输出平均分

return 0;

}

(若帮助了你,请采纳)

回答2:

#include

#include

#include

int main()

{ int i,max=0,min=0;

  float s=0,a[10];

  srand(time(0));

  for(i=0; i<10; i++)

  { a[i]=(880+rand()%(1001-880))/10.0;

    s+=a[i];

    if(a[i]>a[max])max=i;

    if(a[i]

  }

  for(i=0;i<10;i++)

  {if(i==max||i==min)printf("(%.1f) ",a[i]);

     else printf("%.1f ",a[i]);

  }

  printf("\n%.2f\n",(s-a[max]-a[min])/8);

  return 0;

}