damywin 2020-03-29 13:06 采纳率: 100%
浏览 198

动态构造存放学生的结构体数组函数版怎么写?

/*动态构造存放学生的结构体数组
动态构造一个数组,存放学生的信息
然后按分数排序                   */

#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循环写成函数调用的话怎么写呢?麻烦告诉我简单具体的写法,不太掌握这方面的,谢谢!
  • 写回答

1条回答 默认 最新

  • 商朕 2020-03-29 17:05
    关注

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

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记