C语言编程题!在线等 急

2024-11-27 21:06:11
推荐回答(2个)
回答1:

1、
#include
void main()
{
float sorc[5][8],aver[5],sum,max,min;
int i,j,k,l;
printf("分别输入8个评委对每个学生的评分成绩\n");
for(i=0;i<5;i++)
{
printf("歌手%d",i+1);
for(j=0;j<8;j++)
scanf("%f",&sorc[i][j]);
}
/*输出评分成绩*/
for(i=0;i<5;i++)
{
printf("歌手%d:",i+1);
for(j=0;j<8;j++)
printf("%f\t",sorc[i][j]);
printf("\n");
}

/*去掉最高分和最低分*/
for(i=0;i<5;i++)
{
max=min=sorc[i][0];
k=0;
l=0;
for(j=1;j<8;j++)
{
if(max {
max=sorc[i][j];
k=j;
}
if(min>sorc[i][j])
{
min=sorc[i][j];
l=j;
}
}
sorc[i][k]=0;
sorc[i][l]=0;
}

/*计算平均分*/
for(i=0;i<5;i++)
{
sum=0.0;
for(j=0;j<8;j++)
sum+=sorc[i][j];
aver[i]=sum/6; /*因为已经除去一个最高分和一个最低分*/
printf("歌手%d的平均分为%f\n",i,aver[i]);
}
}

2、
#include
#define N 5
struct student
{
char name[8];
float score[4];
float sum;
}stu[N],p;
void main()
{
/*对信息初始化*/
int i,j;
float s;
for(i=0;i {
printf("student%d\n",i+1);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<4;j++)
{
printf("cheng ji %d",j+1)
scanf("%f",&stu[i].score[j]);
}
printf("\n");
}
/*计算总成绩*/
for(i=0;i {
s=0.0;
for(j=0;j<4;j++)
s+=stu[i].score[j];
stu[i].sum=s;
}
/*排序*/
for(i=0;i for(j=i+1;j if(stu[i].sum {
p=stu[i];
stu[i]=stu[j];
stu[j]=p;
}
/*输入*/
for(i=0;i {
printf("%s\t",stu[i].name);
for(j=0;j<4;j++)
printf("%f\t",stu[i].score[j]);
printf("%f\n",stu[i].sum);
}
}

备注:为编译

回答2:

建议你看看我回的帖子,原帖位置:
http://zhidao.baidu.com/question/121288290.html?ansup2
和你的要求基本一样,我的程序完全符合他的那个帖子,并且调试通过,我就不给你改了,你完全copy过来就可以。