|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
struct Student//製作一個學生結構體
{
char name[8];
float w,h;
};
int cmpw(const void*p1,const void*p2)//比較體重
{
const Student*pf1=(const Student*)p1;
const Student*pf2=(const Student*)p2;
return (int)(pf1-> w - pf2->h);
}
int cmph(const void*p1,const void*p2)//比較身高
{
const Student*pf1= (const Student*) p1;
const Student*pf2= (const Student*) p2;
return (int)(pf1->h - pf2->h);
}
void inputStudent(Student* px)
{
scanf("%s %f %f",px->name,px->w,px->h);//學生資料輸入函數
}
void printfstudent(const struct Student* px)
{
printf("name:%s,w:%f\n,h:%f\n",px->name,px->w,px->h);//學生資料打印函數
}
int main()
{
void printfstudent(const struct Student* px);
void inputStudent( Student* px);
int cmpw(const void* p1 ,const void* p2);
int cmph(const void* p1 ,const void* p2);
size_t n=0;
int i=0;
printf("n=");
scanf("%u",&n);//動態的
Student *p=(Student*) malloc(sizeof(Student)*n);//預配置空間
for(i=0;i<n;++i)
{
inputStudent(p+i);
}
qsort(p,n,sizeof(Student),cmpw);
for(i=0;i<n;++i)
{
printfstudent(p+i);
}
printf("\n");//稍微美觀下
qsort(p,n,sizeof(Student),cmph);
for(i=0;i<n;++i)
{
printfstudent(p+i);
}
}
|
|