作业社区
探索学习新天地,共享知识资源!
浪潮君 的学生作业:
#include #include #define MAX 10 // 学生信息结构体 struct student { char name[20]; int id; int age; }; typedef struct student datatype_t; // 顺序表结构体 typedef struct { datatype_t buf[MAX]; // 学生数组 int n; // 实际学生人数 } seqlist_t; int main() { seqlist_t st; st.n = 0; // 初始化人数为0 // 添加第一个学生 strcpy(st.buf[0].name, "张三"); st.buf[0].id = 1001; st.buf[0].age = 18; st.n++; // 添加第二个学生 strcpy(st.buf[1].name, "李四"); st.buf[1].id = 1002; st.buf[1].age = 19; st.n++; // 获取并打印第一个学生的ID int first_id = st.buf[0].id; printf("第一个学生的ID是:%d\n", first_id); return 0; }
+17
浪潮君 的学生作业:
#include #include // 定义一个结构体类型 s_t,表示学生信息 typedef struct { char name[20]; // 学生姓名 int id; // 学号 int score; // 成绩 } s_t; // 分配动态内存空间,返回指向结构体的指针 s_t *get_memory_addr() { s_t *ptr = (s_t *) malloc(sizeof(s_t)); // 为一个 s_t 类型变量分配内存 if (ptr == NULL) { // 检查内存是否分配成功 printf("malloc failed\n"); exit(1); // 分配失败则退出程序 } return ptr; // 返回分配好的内存地址 } // 输入学生信息,参数是指向结构体的指针 void input_student(s_t *s) { printf("请输入学生姓名、学号、成绩:"); // 使用 -> 操作符访问结构体成员 // s 是一个指向结构体 s_t 的指针 // s->name 等价于 (*s).name scanf("%s %d %d", s->name, &s->id, &s->score); } // 输出学生信息 void output_student(s_t *s) { printf("学生信息如下:\n"); // 使用 -> 操作符访问并打印结构体成员 printf("姓名:%s\n", s->name); printf("学号:%d\n", s->id); printf("成绩:%d\n", s->score); } int main(int argc, char *argv[]) { // 获取一个指向结构体的动态内存地址 s_t *student = get_memory_addr(); // 输入学生信息 input_student(student); // 输出学生信息 output_student(student); // 释放动态分配的内存 free(student); return 0; }
+17