C语言结构体数组的定义是什么?
3个回答
展开全部
结构数组就是具有相同结构类型的变量集合。
假如要定义一个班级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]
假如要定义一个班级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]
展开全部
struct student
{ char stuno[10];//学号一般比较长,用字符数组存放。
char name[10];//存放姓名
float score[2];//数组中存放2门课的成绩;
float sum;//存放总分
float aver;//存放平均成绩
}stu[5]; //结构体数组,能表示5个同学各自的信息
{ char stuno[10];//学号一般比较长,用字符数组存放。
char name[10];//存放姓名
float score[2];//数组中存放2门课的成绩;
float sum;//存放总分
float aver;//存放平均成绩
}stu[5]; //结构体数组,能表示5个同学各自的信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询