C语言结构体数组的定义是什么?

发布网友 发布时间:2022-04-24 03:50

我来回答

3个回答

热心网友 时间:2022-04-02 20:16

  结构数组就是具有相同结构类型的变量集合。

  假如要定义一个班级40个同学的姓名、性别、年龄和住址, 可以定义成一个结构数组。如下所示:
struct{ char name[8]; char sex[2]; int age; char addr[40]; }student[40];  也可定义为:
struct string{ char name[8]; char sex[2]; int age; char addr[40]; }; struct string student[40];  需要指出的是结构数组成员的访问是以数组元素为结构变量的, 其形式为:
  结构数组元素.成员名
  例如:
student[0].name student[30].age  实际上结构数组相当于一个二维构造, 第一维是结构数组元素, 每个元素是
  一个结构变量, 第二维是结构成员。
  注意: 结构数组的成员也可以是数组变量。
  例如:
struct a { int m[3][5]; float f; char s[20]; }y[4];  为了访问结构a中结构变量y[2]的这个变量, 可写成
y[2].m[1][4]

热心网友 时间:2022-04-02 21:34

struct student
{ char stuno[10];//学号一般比较长,用字符数组存放。
char name[10];//存放姓名
float score[2];//数组中存放2门课的成绩;
float sum;//存放总分
float aver;//存放平均成绩
}stu[5]; //结构体数组,能表示5个同学各自的信息

热心网友 时间:2022-04-02 23:09

#include<stdio.h>
struct student
{
int num;
char name[20];
float score1,score2,sum,average;
};
void main()
{
struct student stu[5];
int i;

for(i=0;i<5;i++)
{
printf("请依次输入第%d个学生的学号,姓名,和两门成绩:",i+1);
scanf("%d%s%f%f",&stu[i].num,stu[i].name,&stu[i].score1,&stu[i].score2);
stu[i].sum=stu[i].score1+stu[i].score2;
stu[i].average=stu[i].sum/2;
}
printf("学号 姓名 成绩 总成绩 平均成绩\n");
for(i=0;i<5;i++)
printf("%d %s %.2f %.2f %.2f
%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].sum,stu[i].average);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com