实验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;
}