C语言用结构体输入三个学生信息
时间: 2024-02-28 20:25:23 浏览: 95
可以使用如下的C语言代码定义一个学生的结构体,并使用结构体数组来存储多个学生的信息:
```
#include <stdio.h>
// 定义学生结构体
struct student {
char name[20];
int age;
float score;
};
int main() {
// 定义结构体数组
struct student stu[3];
// 输入三个学生的信息
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的姓名、年龄、成绩:", i+1);
scanf("%s %d %f", stu[i].name, &stu[i].age, &stu[i].score);
}
// 输出学生信息
for (int i = 0; i < 3; i++) {
printf("第%d个学生的信息:\n", i+1);
printf("姓名:%s\n", stu[i].name);
printf("年龄:%d\n", stu[i].age);
printf("成绩:%.2f\n", stu[i].score);
}
return 0;
}
```
运行程序后,你可以依次输入三个学生的姓名、年龄、成绩,程序会自动存储这些信息,并输出每个学生的信息。
相关问题
C语言定义结构体student,属性有学号,姓名,性别,分数。定义指针变量ps,键盘输入获取3个学生的信息,输出三个学生的信息
在C语言中,首先我们需要定义一个名为`student`的结构体来存储学生的相关信息,包括学号、姓名、性别和分数。然后我们定义一个指向`student`类型的指针变量`ps`,以便动态分配内存并操作学生数据。
以下是详细的步骤:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc函数
// 定义结构体 student
struct student {
int student_id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
float score; // 分数
};
int main() {
// 定义指向student的指针 ps
struct student *ps;
// 动态分配内存,如果失败则返回NULL
ps = (struct student *) malloc(sizeof(struct student) * 3);
if (!ps) {
printf("内存分配失败!\n");
return 1;
}
// 输入第一个学生信息
printf("请输入第一个学生信息:\n");
scanf("%d %s %s%f", &ps->student_id, ps->name, ps->gender, &ps->score);
// 其他两个学生的输入类似,这里省略
// 输出所有学生的信息
for (int i = 0; i < 3; i++) {
printf("学生%d: 学号:%d,姓名:%s,性别:%s,分数:%f\n", i+1, ps[i].student_id, ps[i].name, ps[i].gender, ps[i].score);
}
// 释放内存
free(ps);
return 0;
}
```
C语言 用结构体从键盘中输入3个学生的学号,姓名和3门课的成绩,输出每个学生的姓名和三门课成绩的平均值
以下是一个解决方案:
```c
#include <stdio.h>
// 定义学生结构体
struct Student {
int id;
char name[20];
float score[3];
float average;
};
int main() {
struct Student student[3];
// 从键盘中输入学生信息
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的学号、姓名和三门课的成绩:\n", i+1);
scanf("%d %s %f %f %f", &student[i].id, student[i].name, &student[i].score[0], &student[i].score[1], &student[i].score[2]);
// 计算平均值
student[i].average = (student[i].score[0] + student[i].score[1] + student[i].score[2]) / 3.0;
}
// 输出每个学生的姓名和成绩
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
for (int i = 0; i < 3; i++) {
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n", student[i].id, student[i].name, student[i].score[0], student[i].score[1], student[i].score[2], student[i].average);
}
return 0;
}
```
这个程序使用结构体来表示学生信息。在循环中,使用 `scanf` 从键盘中输入学生信息,并计算平均值。最后,使用 `printf` 输出每个学生的学号、姓名、三门课成绩和平均值。注意,为了方便对齐,我们使用了 `\t` 水平制表符来分隔输出。
阅读全文