用c语言知识做: 接收6名学生的学号和三门课成绩的输入,计算平均成绩,然后一并存入数组中;再(接补充)

2025-03-26 09:57:01
推荐回答(3个)
回答1:

# include 

typedef struct

{

int   xuehao;   /*学号*/

float score[3]; /*三门成绩*/

float Average;  /*平均成绩*/

}student;

/*排序函数*/

/*入口参数:数组,数组起始元素下标,末端元素下标*/

void sort(student a[],int left,int right) 

{

student temp;

int i,j;

i=left;j=right;

temp=a[left];

while(i

{

while(i

if(i

{

a[i]=a[j];

i++;

}

while(itemp.Average)i++;

if(i

{

a[j]=a[i];

j--;

}

}

a[i]=temp;

if(left

if(i

}

void main()

{

student stud[6];

int i,j;

printf("请依次输入6名学生的学号和三门课程成绩\n");

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

scanf("%d %f %f %f",&stud[i].xuehao,&stud[i].score[1],&stud[i].score[2],&stud[i].score[3]);

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

stud[i].Average=(stud[i].score[1]+stud[i].score[2]+stud[i].score[3])/3;

sort(stud,0,5);

    printf("\n排序结果:\n");

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

printf("\n%d  %f",stud[i].xuehao,stud[i].Average);

printf("\n");

}

回答2:

定义一个二维数组a[i][j],
for(i=0;i<6;i++)
cin>>a[i][0];//输入六名学生的学号
for(j=0;j<3;j++)
cin>>a[0][j];//输入每个人每门课的成绩
然后求出平均值就可以了。然后用冒泡排序法排序平均成绩;
得到结果。

回答3:

成绩是计算六个同学每门课的平均成绩还是每个同学三门的平均成绩