面试题答案
一键面试#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int age;
float score;
} Student;
int main() {
int n;
printf("请输入学生数量: ");
scanf("%d", &n);
// 动态分配学生结构体数组内存
Student *students = (Student *)malloc(n * sizeof(Student));
if (students == NULL) {
printf("内存分配失败\n");
return 1;
}
// 输入每个学生的信息
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个学生的姓名: ", i + 1);
scanf("%s", students[i].name);
printf("请输入第 %d 个学生的年龄: ", i + 1);
scanf("%d", &students[i].age);
printf("请输入第 %d 个学生的成绩: ", i + 1);
scanf("%f", &students[i].score);
}
// 输出学生信息
printf("\n学生信息如下:\n");
for (int i = 0; i < n; i++) {
printf("姓名: %s, 年龄: %d, 成绩: %.2f\n", students[i].name, students[i].age, students[i].score);
}
// 释放分配的内存
free(students);
return 0;
}
上述代码首先定义了一个Student
结构体来表示学生信息。然后根据用户输入的学生数量动态分配内存创建结构体数组。接着通过循环让用户输入每个学生的具体信息,最后输出这些信息并释放动态分配的内存。注意在实际应用中,还可以对输入进行更严格的有效性检查。