结构体综合设计
例 输入30个学生,姓名,身高,体重,视力。
(1)sort()函数用冒泡排序法按照学生身高与体重的比值进行升序排序,并且进行输出显示;
(2)countgirls()函数求出女生中视力低于1.0的学生总数count,并且输出显示、
(3)main():
输入学生的各个信息、进行函数声明、输出显示
#include<stdio.h>
#include<string.h>
#define M 3
#define N 2
typedef struct staff
{
char name[20];
char sex;
float hight;
float weight;
float sight;
}KIDS;
void main()
{
KIDS stu[N];
int i,count;
for(i=0;0<N;i++)
{
scanf("%s,%c,%f,%f,%f",stu[i].name,&stu[i].sex,&stu[i].hight,&stu[i].weight,&stu[i].sight);
}
void sort(KIDS stu[]);
int countgirls(KIDS stu[]);
sort(stu);
count=countgirls(stu);
for(i=0;i<N;i++)
{
printf("排序是:%s %c %f %f %f\n",stu[i].name,stu[i].sex,stu[i].hight,stu[i].weight,stu[i].sight);
}
printf("视力低于1.0的女生总人数是:%d\n",count);
}
void sort (KIDS x[N])
{
int i,j;
KIDS t;
for(i=1;i<N;i++)
{
for(j=0;j<N-i;j++)
{
if((x[j].hight/x[j].weight)>(x[j+1].hight/x[i+1].weight))
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
}
}
int countgirls(KIDS x[N])
{
int i,count=0;
for(i=0;i<N;i++)
{
if(x[i].sex=='f'&&x[i].sight<1.0)
{
count++;
}
}
return count;
}