/*动态构造存放学生的结构体数组
动态构造一个数组,存放学生的信息
然后按分数排序 */
#include<stdio.h>
#include<malloc.h>
struct Student{
int age;
char name[100];
float score;
};
int main(){
struct Student*pArr;
int len,i,j;
struct Student t;
printf("请输入学生的人数:");
scanf("%d",&len);
printf("len=%d\n",len);
pArr=(struct Student*)malloc(len*sizeof(struct Student)); //动态分配数组
for(i=0;i<len;i++){
printf("请输入第%d个学生的信息:\n",i+1);
printf("age=");
scanf("%d",&pArr[i].age);
printf("name=");
scanf("%s",pArr[i].name);
printf("score=");
scanf("%f",&pArr[i].score);
}
//排序
for(i=0;i<len-1;i++){
for(j=0;j<len-1-i;j++){
if(pArr[j].score>pArr[j+1].score){
t=pArr[j];
pArr[j]=pArr[j+1];
pArr[j+1]=t;
}
}
}
//输出
printf("\n\n学生的信息:\n");
for(i=0;i<len;i++){
printf("输出第%d个学生的信息:\n",i+1);
printf("age=%d\n",pArr[i].age);
printf("name=%s\n",pArr[i].name);
printf("score=%f\n",pArr[i].score);
}
printf("\n");
}
//代码如上,请问把代码里的输入,输出,冒泡排序的for循环写成函数调用的话怎么写呢?麻烦告诉我简单具体的写法,不太掌握这方面的,谢谢!
Bubble_Sort(pArr,len);
void Bubble_Sort(Student student[], int len){
int i = 0;
int j = 0;
for(i=0;i<len-1;i++){
for(j=0;j<len-1-i;j++){
if(student[j].score > student[j+1].score){
t=student[j];
student[j]=student[j+1];
student[j+1]=t;
}
}
}
}