C语言建立N名学生信息登记表,其中包括学号,姓名,性别及五门功课成绩
时间: 2024-05-11 17:18:27 浏览: 6
下面是一个简单的 C 语言程序,用于建立学生信息登记表:
```c
#include <stdio.h>
#include <stdlib.h>
struct student
{
int id;
char name[20];
char gender;
float score[5];
};
int main()
{
int n, i, j;
struct student *stu;
printf("请输入学生数量:");
scanf("%d", &n);
stu = (struct student*)malloc(sizeof(struct student) * n);
for (i = 0; i < n; i++)
{
printf("请输入第%d个学生的学号、姓名、性别和五门功课成绩:\n", i + 1);
scanf("%d %s %c", &(stu+i)->id, (stu+i)->name, &(stu+i)->gender);
for (j = 0; j < 5; j++)
{
scanf("%f", &(stu+i)->score[j]);
}
}
printf("\n学生信息登记表:\n");
printf("学号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\n");
for (i = 0; i < n; i++)
{
printf("%d\t%s\t%c\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n", (stu+i)->id, (stu+i)->name, (stu+i)->gender, (stu+i)->score[0], (stu+i)->score[1], (stu+i)->score[2], (stu+i)->score[3], (stu+i)->score[4]);
}
free(stu);
return 0;
}
```
该程序使用了结构体来表示每个学生的信息,其中包括学号、姓名、性别和五门功课成绩。程序首先通过 `scanf` 函数获取学生数量 `n`,然后动态分配一段内存空间,用于存放 `n` 个学生的信息。
接下来,程序通过循环依次获取每个学生的信息,并将其保存到动态分配的内存空间中。最后,程序输出学生信息登记表,包括每个学生的学号、姓名、性别和五门功课成绩。
注意,为了确保程序能够正确地访问每个学生的信息,我们使用了指针运算符 `->`。例如,`(stu+i)->id` 表示第 `i` 个学生的学号。