c语言程序设计 : 有8个评委,5个歌手,评委为每个歌手打分。去掉最高分和最低分,求每个歌手的平均分。

作者&投稿:解阮 (若有异议请与网页底部的电邮联系)
c语言程序设计 : 有8个评委,5个歌手,评委为每个歌手打分。去掉最高分和最低分,求每个歌手的得分。而且~

#include
#include
int main()
{
int sum,i,j,score[9][5],max,min,maxp,minp;
for(i=1;i<=8;i++)
{
printf("第%d个评委打分:
",i);
printf("请依次输入该评委给各位歌手的分数(输入顺序表示歌手编号):");
for(j=0;j<5;j++)
{
scanf("%d",&score[i][j]);
}
}
system("cls");
for(j=0;j<5;j++)
{
sum=0;
max=0;
min=100;
for(i=1;i<=8;i++)
{
if(score[i][j]>max)
{
max=score[i][j];
maxp=i;
}
else if(score[i][j]<min)
{
min=score[i][j];
minp=i;
}
sum+=score[i][j];
}
sum=sum-max-min;
printf("第%d个歌手的得分:
",j+1);
printf("总分:%d
",sum);
for(i=1;i<=8;i++)
{
if(i==maxp)
printf("第%d个评委的给分为:%d
",i,max);
else if(i==minp)
printf("第%d个评委的给分为:%d
",i,min);
else
printf("第%d个评委的给分为:%d
",i,score[i][j]);
}
printf("
");
}
return 0;
}

#include "stdio.h"
#define PW 7
#define GS 5

struct score
{
int num;
float a[PW],add;
}sc[GS];

void sort()
{
int i,j;
struct score d;

for(i=0;i<GS;i++)
{
for(j=0;j<GS-i-1;j++)
{
if(sc[j].add<sc[j+1].add)
{
d=sc[j];
sc[j]=sc[j+1];
sc[j+1]=d;
}
}
}
}

void main()
{
int i,j;
float max,min,sum;
float a[GS][PW],add[GS];

for(i=0;i<GS;i++)
{
printf("No.%d:
",i+1);
for(j=0;j<PW;j++)
scanf("%f",&a[i][j]);
}
for(i=0;i<GS;i++)
{
sum=0;max=0;min=100;
for(j=0;j<PW;j++)
{
sum=sum+a[i][j];
if (max<a[i][j]) max=a[i][j];
if (min>a[i][j]) min=a[i][j];
}
add[i]=(sum-max-min);
printf("No.%d:%.2f
",i+1,add[i]);
}
for(i=0;i<GS;i++)
{
sc[i].num=i+1;
sc[i].add=add[i];
for(j=0;j<PW;j++)
sc[i].a[j]=a[i][j];
}

sort();
printf("
");
for(i=0;i<GS;i++)
printf("No.%d:%.2f
",sc[i].num,sc[i].add);
}

如果你想简单一点就
初始化二维数组再进行运算:
#define pw 8 /*评委数目*/
#define gs 5 /*歌手数目*/
main()
{
int i,j,max,min,sum,ave[gs];
int a[gs][pw]={{1,1,1,1,1,1,1,1}, /*先初始化分数再进行运算*/
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1}};
for(i=0;i<gs;i++)
{
sum=0;max=0;min=10000;/*初始化累加值,最大值,最小值*/
for(j=0;j<pw;j++)
{
sum=sum+a[i][j];
if (max<a[i][j]) max=a[i][j];
if (min>a[i][j]) min=a[i][j];
}
ave[i]=(sum-max-min)/(pw-2);/*(累加值-最大值-最小值)/(评委总数-2)*/
printf("avepoint of gs[%d]:=%d\n",i+1,ave[i]);/*输出每个歌手的评价分数*/
}
getch();
}

以下是在运算中输入分数:
#define pw 8 /*评委数目*/
#define gs 5 /*歌手数目*/

main()
{
int i,j,max,min,sum;
int a[gs][pw],ave[gs];

for(i=0;i<gs;i++)/*输入歌手分数*/
for(j=0;j<pw;j++)
{
printf("[%d]point of gs[%d]:",j+1,i+1);
scanf("%d",&a[i][j]);
}

for(i=0;i<gs;i++)
{
sum=0;max=0;min=10000;/*初始化累加值,最大值,最小值*/
for(j=0;j<pw;j++)
{
sum=sum+a[i][j];
if (max<a[i][j]) max=a[i][j];
if (min>a[i][j]) min=a[i][j];
}
ave[i]=(sum-max-min)/(pw-2);/*(累加值-最大值-最小值)/(评委总数-2)*/
printf("avepoint of gs[%d]:=%d\n",i+1,ave[i]);/*输出每个歌手的评价分数*/
}
getch();
}

float ave( float m[8]) //处理一个歌手的平均分
{ float max, min, sum=0;
int i;
max=min=sum=m[0];
for(i=1;i<8;i++)
{ if (max < m[i] ) max=m[i];
if ( min > m[i] ) min=m[i];
sum+=m[i];
}
sum=sum-max-min;
return sum/6.0;
}
main()
{ float score[5][8], mark[5];
int i,j;
for(i=0;i<5;i++)
{ for(j=0;j<8;j++)
scanf("%f",&score[i][j]); //输入一个歌手的分数
mark[i]=ave(score[i]); //得到一个歌手的平均分
}
for(i=0;i<5;i++)
printf("%d %f\n",i,mark[i]); // 输出歌手的代号和分数
}

创建一个5*8的二维数组score[5][8],每一维的8个值表示8个评委对一个歌手的评分。
然后对每一维找出最高分和最低分所在的位置,跳过这样的两个位置对其余的求平均值就解决问题了。

#include<stdio.h>
#include<string.h>
main()
{ float a[5][9],max,min,s;
int i,j;
for(i=0;i<5;i++)
{s=0;
for(j=0;j<8;j++)
{scanf("%f",&a[i][j]);
if(j==0){max=a[i][j];min=a[i][j];}
else
{if(a[i][j]>max)max=a[i][j];
if(a[i][j]<min)min=a[i][j];}
s=s+a[i][j];
}
a[i][8]=(s-max-min)/6;
}
for(i=0;i<5;i++)printf("%.2f ",a[i][8]);
system("PAUSE");
}

一楼的答案已经很完美了,没有需要补充的了。


越城区15337613366: 用C语言编程:有八个评委为五个选手打分,去掉一个最高分,一个最低分,然后求出平均分,按平均分排名,以表格形式输出. -
潘标糖适: #include<stdio.h> struct student { float score[8]; float ave; }; struct avescore { float ave; int stunum; //选手号码 }; int main() { float MaxScore,MinScore,SumScore; int i,j,k=-1; struct student Stu[5]; struct avescore Ave[5],temp; for(i=0;i<5;i++) { ...

越城区15337613366: c语言程序设计 : 有8个评委,5个歌手,评委为每个歌手打分.去掉最高分和最低分,求每个歌手的平均分. -
潘标糖适: 如果你想简单一点就 初始化二维数组再进行运算:#define pw 8 /*评委数目*/#define gs 5 /*歌手数目*/ main() { int i,j,max,min,sum,ave[gs]; int a[gs][pw]={{1,1,1,1,1,1,1,1}, /*先初始化分数再进行运算*/ {1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,...

越城区15337613366: C语言程序 8位评委为5位歌手打分 去掉最高分最低分 求平均分 在线等!!! -
潘标糖适: #include "stdio.h" void main(){int num[8];int i,j;float sum;for(i=0;i<5;i++){printf("请为第%d位选手打分\n",i+1);for(j=0;j<8;j++){printf("请第%d位评委为第%d位选手打分",j+1,i+1);scanf("%d",&num[j]);}sum=0;for(j=1;j<7;j++){sum+=num[j];}printf("第%d位选手的平均分是:%.2f\n",i+1,sum/8);} }

越城区15337613366: C语言程序设计1)在青年歌手大奖赛中,有10个评委为参赛的5选手打分,分数为1~100分.选手最后得分为:去掉一个最高分和一个最低分后其余8个分数... -
潘标糖适:[答案] #include #define JUDGER 5 #define PLAYER 3 void sort(float *player, int num) { for (int i=0; i
越城区15337613366: C语言编程:十个评委分别为十位歌手评分,去掉一个最高分,去掉一个最低分,求剩下分数的平均值 -
潘标糖适: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62#include <stdio.h> #include <stdlib.h>#define NUM 10...

越城区15337613366: C语言程序设计 -
潘标糖适: 经过测试了:#include <stdio.h> void main() { int i,j, point[3][5], add[3]={0,0,0}; printf("请输入评委评分:\n"); printf("\n第一位歌手:\n"); for(i=0;i<3;i++) { for(j=0;j<5;j++) { scanf("%d",&point[i][j]); } if(i==2)break; printf("下一位歌手:\n...

越城区15337613366: 设计C语言程序共有M个选手参加比赛,N个评委进行打分,从键盘输入M个选手的各N个成绩(按照先输入第一个 -
潘标糖适: #include "stdio.h" 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("...

越城区15337613366: 急!C语言编程:10个评委的给分中,去掉一个最高分,去掉一个最低分,剩余8个分数求平均值.请编程实现之 -
潘标糖适: #include "stdio.h"main() { int integer,i,max,min,sum; max=0;min=100;sum=0;for(i=1;i<=10;i...

越城区15337613366: c语言程序设计:输入评委选手信息,使用链表,评委为选手打分,去掉最高分和最低分, -
潘标糖适: 我给你一个,我调试过的include <stdio.h> #include <string.h> #include <malloc.h> #define NULL 0 struct stu {int num;int age;struct stu *next; }; struct stu * creat(int n) {struct stu * head,*pb,*pf;int i;for(i=0;i<n;i++){pb=(struct stu *)malloc(...

越城区15337613366: c语言程序设计的一道题
潘标糖适: #include<stdio.h> void main() { float a[10],t,sum=0,average; int i,j; printf("各评委给歌手打分:\n"); for(i=0;i<10;i++) scanf("%f",&a[i]); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf("排序后歌手的得分:\n...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网