动态内存分配
#include<stdlib.h> 引入库函数 用于
malloc和free等函数。STU *stu;
stu=(STU*)malloc( 5 * sizeof(STU) ) ;
if(stu == NULL) { printf(" 内存分配失败\n"); return 1; }
指针变量分配内存空间
和 数组分配内存差不多 调用方式一样------可用p[i] *(p+i) 值 &p[i]....
学生结构体写题思路
1.定义宏
2.划分功能模块
3.main()调用实现
4.函数实现
注意:若较简单可 先写函数
n个学生信息(学号 姓名 成绩) 要求按照成绩高低输出 (动态内存分配)
#include<stdio.h>
#include<stdlib.h>
#define N 5
typedef struct
{
long no;
char name[10];
float score;
}STU;
int main()
{
STU* stu; //结构体指针
stu = (STU*)malloc(sizeof(STU) * N);
if (stu == NULL) //判断内存分配是否成功
{
printf("分配空间失败");
return 1;
}
int i, j, k;
for (i = 0; i < N; i++)
{
scanf("%ld%s%f", &stu[i].no, stu[i].name, &stu[i].score);
}
//降序
for (i = 0; i < N - 1; i++)
{
k = i;
for (j = i + 1; j < N; j++)
{
if (stu[k].score < stu[j].score)k = j;
}
if (k != i) { STU t = stu[k]; stu[k] = stu[i]; stu[i] = t; } //交换结构体变量
}
//输出
for (i = 0; i < N; i++)
printf("%ld %s %f\n", stu[i].no, stu[i].name, stu[i].score);


725

被折叠的 条评论
为什么被折叠?



