#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct student{
char name[20];
int high;
int score;
}student,*pint;
void insert_inf(student arr[],int sub){
printf("请输入学生姓名");
scanf("%s",arr[sub].name);
printf("请输入学生身高");
scanf("%d",&arr[sub].high);
printf("请输入学生成绩");
scanf("%d",&arr[sub].score);
}
void bubble(student arr[],int len){
student temp;
for(int i=1;i<len;i++){
for(int j=0;j<len-i;j++){
if(arr[j].score>arr[j+1].score){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
void sort_insert(student arr[],int len){
int i,j;
for(i=1;i<len;i++){
student temp=arr[i];
for(j=i-1;j>=0&&arr[j].score>temp.score;j--){
arr[j+1]=arr[j];
}
arr[j+1]=temp;
}
}
int one_sort(student arr[],int head,int end){
student temp=arr[head];
while(head<end){
while(head<end&&arr[end].score>temp.score){
end--;
}
arr[head]=arr[end];
while(head<end&&arr[head].score<temp.score){
head++;
}
arr[end]=arr[head];
}
arr[head]=temp;
return head;
}
void sort_quick(student arr[],int head,int end){
if(head<end){
int mid=one_sort(arr,head,end);
sort_quick(arr,head,mid-1);
sort_quick(arr,mid+1,end);
}
}
void output(student arr[],int len){
for(int i=0;i<len;i++){
printf("姓名%s\t身高%d\t成绩%d\n",arr[i].name,arr[i].high,arr[i].score);
}
}
int main(int argc, const char *argv[])
{
student arr[7];
for(int i=0;i<7;i++){
insert_inf(arr,i);
}
int len=7;
sort_quick(arr,0,len-1);
printf("排序完成的学生信息表:\n");
output(arr,len);
return 0;
}