求一个C语言结构体编程例子。

2022-08-19 社会 51阅读

排序你可以用最简单的冒泡或者选择排序,以平均分为标准

#include

typedef struct student

{

 int num;

 char name[20];

 int Score1;

 int Score2;

 int Score3;

 float average;

}student;

student st[3];

void CreateStudent(student st[])

{

 int i,j;

    float Average;

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

 {

  printf("请输入学生%d的资料:\n",i+1);

     printf("学号为:");

  scanf("%d",&st[i].num);

  printf("姓名是:");

  scanf("%s",&st[i].name);

  printf("第1门成绩是:");

  scanf("%d",&st[i].Score1);

  printf("第2门成绩是:");

  scanf("%d",&st[i].Score2);

  printf("第3门成绩是:");

  scanf("%d",&st[i].Score3);

  printf("\n");

  st[i].average = (st[i].Score1+st[i].Score2+st[i].Score3)/3;

 }

}

void SortStudent(student st[],int nLength)

{

 int i, j, max;

 student temp;

 for(i=0; i

 {

  max = i;

  for(j=i+1; j

  {

   if(st[j].average > st[max].average)

    max = j;

  }

  if(max != i)

  {

   temp = st[i];

   st[i] = st[max];

   st[max] = temp;

  }

 }

}

int main()

{

 int j;

 CreateStudent(st);

 SortStudent(st,3);

    printf("学号\t姓名\t语文\t数学\t英语\t平均分\n");

    for(j=0;j<3;j++)

   {

       printf("%d",st[j].num);

    printf("\t%s",st[j].name);

       printf("\t%d",st[j].Score1);

       printf("\t%d",st[j].Score2);

       printf("\t%d",st[j].Score3);

    printf("\t%2f",st[j].average);

       printf("\n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n");

   }

}

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com