定义一个整型的一维数组,并定义一个一维的学生信息结构体数组,设计一个函数,按照数组下标的顺序,将整型数组中的变量信息赋值给学生结构体数组中的成绩成员变量。要求使用结构体指针类型的变量,进行结构体变量的赋值操作。
解题思路:采用 malloc 函数进行学生结构体指针变量的定义,将结构体指针变量指向学生结构体数组变量的首地址,并使用 --> 访问成员变量的方式进行结构体变量赋值。提示:指针变量指向结构体变量的首地址后,可以使用 ++ 运算符进行指针的移动操作。
参考代码:
#include "stdio.h"
#include "malloc.h"
#include "string.h"
#define NUM 1
struct STUDENT
{
char STU_ID[8];
char STU_NAME[10];
int STU_AGE;
int STU_SCORE;
};
int main(int argc, char* argv[])
{
int i;
int Age[5];// 待输入的 5 个年龄
printf(" 请输入五个年龄,以逗号隔开 \n");
// 依次输入 5 个年龄
scanf("%d,%d,%d,%d,%d",&Age[0],&Age[1],&Age[2],&Age[3],&Age[4]);
// 定义由 5 个结构体指针构成的数组(相当于 5 个指针)
struct STUDENT (*p_stu)[5] = (struct STUDENT (*)[5])malloc(5*sizeof(struct STUDENT));
// 学生补充代码,将数组 Age 中的值依次赋给结构体
{
}//end of 学生补充代码
// 打印赋值后的结果
for(i=0; i<5; i++)
{
printf("%d\n", p_stu[i]->STU_AGE);
}
return 1;
}