实验11 结构体

输入10个学生的学号、姓名和成绩,计算并输出平均分,再按照从高分到低分的顺序输出他们的信息。

 

#include<stdio.h>
struct student{
 int num;
 char name[20];
 int result;

 

};
int main(void)
{
 int i,j,index;
 double average;
 struct student students[10],temp;
 j=0;
 for(i=0;i<10;i++){
  scanf("%d %s %d",&students[i].num,&students[i].name,&students[i].result);
  j=j+students[i].result;
 }
 average=j/10;

 

 for(i=0;i<9;i++){
  index=i;
  for(j=i;j<10;j++)
   if(students[j].result>students[index].result)
    index=j;
   temp=students[index];
   students[index]=students[i];
   students[i]=temp;
 }
 printf("The average: %.0f\nThe student score:\n",average);
 for(i=0;i<10;i++)
  printf("%d %s %d\n",students[i].num,students[i].name,students[i].result);
 return 0;
}
 

 


 

 

 

输入某班5位学生的姓名及数学、英语成绩。姓名是一个长度不超过19个

字符的字符串,成绩用整数表示

#include<stdio.h>
struct student{
 char name[20];
 int math,english;
 double average;
};
int main(void)
{
 int i,index;
 struct student students[5];
 for(i=0;i<5;i++){
  scanf("%s%d%d",&students[i].name,&students

[i].math,&students[i].english);
  students[i].average=(students[i].math+students

[i].english)/2.0;
 
 }
 for(i=0;i<5;i++)
  printf("%s %.1f\n",students[i].name,students

[i].average);
 index=0;

 for(i=1;i<5;i++)
  if(students[i].average>students[index].average)
   index=i;

 printf("The max score: %s %d %d\n",students

[index].name,students[index].math,students[index].english);
 return 0;
}

 

 

输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名

#include<stdio.h>
struct men{int age;char name[4];};
int main(void)
{
 int i,index,j;
 struct men men[4],t;
 for(i=0;i<4;i++)
  scanf("%d%s",&men[i].age,&men[i].name);
 for(i=0;i<3;i++){
  index=i;
  for(j=i;j<4;j++)
   if(men[j].age<men[index].age)
    index=j;
   t=men[index];
   men[index]=men[i];
   men[i]=t;
 }
 for(i=0;i<4;i++)
  printf("%d %s\n",men[i].age,men[i].name);
 return 0;
}


 

posted @ 2013-11-21 09:56  李双45678  阅读(162)  评论(0编辑  收藏  举报