用结构体数组存储30名学生的学号,…

来源:互联网 发布:java编程实例大全 编辑:程序博客网 时间:2024/05/22 15:14

# include "stdio.h"
# define N 3
struct score
{
  int yu;
  int shu;
  int ying;
  int cyu;
};
struct xinxi
{
  char num[15];
  char name[20];
  char sex;
  float ave;
  struct score st1;
};
average(int a, int b, int c, int d)
{
  int sum=0;
  float x=0;
  sum=a+b+c+d;
  x=sum/4.0;
  return(x);
}
struct xinxi input()
{
  struct xinxi t;
  printf("请输入姓名:");
  gets(t.name);
  printf("请输入\n学号 性别 四门课成绩\n");
  scanf("%s %c %d %d %d%d",t.num,&t.sex,&t.st1.yu,&t.st1.shu,&t.st1.ying,&t.st1.cyu);
  getchar();
  return(t);
}
void print(struct xinxi t)
{
 printf("学号    姓名      性别        成绩        平均成绩 \n");
 printf("%s       %s        %c    %d  %d  %d %d    %f\n",t.num,t.name,t.sex,t.st1.yu,t.st1.shu,t.st1.ying,t.st1.cyu,t.ave);
}
main()
{
  int i,j;
  struct xinxi s[N],t;
  for(i=0;i
   s[i]=input();
  for(i=0;i
   s[i].ave=average(s[i].st1.yu,s[i].st1.shu,s[i].st1.ying,s[i].st1.cyu);
  for(i=0;i
   for(j=i+1;j
   if(s[i].ave>s[j].ave)
     {
       t=s[i];
       s[i]=s[j];
       s[j]=t;
     }
  for(i=0;i
   print(s[i]);
}


 

0 0