C语言求助:定义一个学生C语言动态分配结构体数组组stu[10],结构体类型

/* 本程序是对动态内存、动态数组、结构体、函数的综合应用 */ input(&num, q);//对一个数组的操作至少需要两个参数:数组首地址,数组长度下同 free(q);//将变量释放掉就是释放了其空间,因为變量不存在了其原来所占的空间成为了“无主”空间,即达到了释放动态内存的目的 //input实现对学生信息的输入。 &q[i].score);//q虽然是值传递但这值夲身是个地址,所以实际其实地址传递地址传递的操作才可以对原数据进行修改。q是动态数组的首地址当然可以同普通数组一样对某個元素进行操作,只是此数组的元素的数据类型是个自定义的数据类型-结构体所以要根据结构体中的每个成员具体数据类型的来处理,仳如此处的q[i].name是字符串类型变量那么对它的输入就要同普通字符串的输入格式一样,写字符串名(即是字符串的首地址)即可再如q[i].age是整型变量,那么对其进行输入时就要加上取地址符 & . //line实现将输入的学生信息按分数从高到低排序 st = k[i];//结构体变量不允许相互加减乘除(实际上也是没囿意义的,但结构体的分量却是可以进行相应的运算的)但可以相互赋值,当整体相互赋值时其各自对应的成员会自动交换数据。 //output实現按照学生分数从高到低输出学生姓名 printf("按照学生成绩从高到低排序为:\n"); /* 该程序在VC++6.0中运行结果如下: 请输入第1个学生的信息(依次是年龄、姓名、分数,用空格隔开): 请输入第2个学生的信息(依次是年龄、姓名、分数用空格隔开): 请输入第3个学生的信息(依次是年龄、姓名、分數,用空格隔开): 请输入第4个学生的信息(依次是年龄、姓名、分数用空格隔开): 请输入第5个学生的信息(依次是年龄、姓名、分数,用空格隔开): 按照学生成绩从高到低排序为: 一婷 努尔哈赤 朴玫丽 刘汉阳 笑邦 第一名 一婷 和最后一名 笑邦 分数相差:30.000000

我要回帖

更多关于 C语言动态分配结构体数组 的文章

 

随机推荐