/************************************************************************/
/* 本程序是对动态内存、动态数组、结构体、函数的综合应用。 */
/************************************************************************/
#include <STDIO.H>
#include <MALLOC.H>
int input(int *,struct Student *);
int line(int, struct Student *);
int output(int, struct Student *);
struct Student
{
int age;
char name[15];
float score;
};
int main(void)
{
int num;
float f;
printf("请输入学生的个数:\n");
printf("N = ");
scanf("%d", &num);
struct Student * q = (struct Student *)malloc(num * sizeof(struct Student));//定义结构体指针变量,同时利用动态内存分配技术为 q 申请动态内存空间,最终算是定义了一个动态数组,指针变量 q 指向了此空间的首地址.此数组的数据类型是自定义数据类型 struct Student.
input(&num, q);//对一个数组的操作至少需要两个参数:数组首地址,数组长度。下同
line(num, q);
output(num, q);
f = q[0].score - q[num-1].score;//结构体的分量是可以进行相关运算的
printf("第一名 %s 和最后一名 %s 分数相差:%f\n", q[0].name
C/C++动态自定义结构体数组实例锻炼-学生成绩排序
最新推荐文章于 2024-02-19 20:37:46 发布