黑马程序员技术交流社区
标题: C语言学习笔记之结构体数组的使用 [打印本页]
作者: chunhuayun 时间: 2015-9-29 18:00
标题: C语言学习笔记之结构体数组的使用
一、结构体数组概念及定义
1、概念
数组的元素也可以是结构类型。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体,例如一个班的学生档案,一个车间职工的工资表等。
例如:
- //方法一:定义一个结构体的同时定义结构体数组
- struct Contact{
- char name[20];
- char number[20];
- char address[20];
- char email[20];
- }contacts[10];
-
- //方法二:先定义一个结构体数组,再定义一个结构体数组
- struct Contact{
- char name[20];
- char number[20];
- char address[20];
- char email[20];
- };
- struct Contact contacts[10];
复制代码
2.结构数组的初始化和遍历
举例应用:
- #include <stdio.h>
- //先定义一个结构体
- struct Student{
- int num;
- char *name;
- char sex;
- float score;
- };
-
- int main(int argc, const char * argv[])
- {
-
- //定义结构体数组、同时进行初始化
- struct Student list [5] = {
- {101,"Amos",'M',90.0f},
- {102,"Allen",'M',80.9f},
- {103,"Andy",'M',40.3f},
- {104,"Sherry",'M',58.9f},
- {105,"Barry",'M',100.0f},
- };
-
- //1、利用上面的结构体,计算学生的平均成绩和不及格人数
- //2、打印80-100分学生的成绩和姓名
- float avg = 0;//平均分
- int sum = 0;//不及格人数
-
- printf("成绩在80到100之间的学生姓名和分数如下:\n");
-
- for (int i = 0; i < 5; i++) {
- avg += list[i].score;
-
- if (60 > list[i].score) {
- sum++;
- } else if(list[i].score >= 80){//假设满分为100
-
- printf("name:%s, score:%0.2f\n",list[i].name, list[i].score);
- }
-
- }
- avg /= 5;//求平均成绩
- printf("\n班级平均成绩为:%0.2f, 不及格人数为:%d\n", avg, sum);
-
- return 0;
- }
复制代码
打印结果:
成绩在80到100之间的学生姓名和分数如下:
name:Amos,score:90.00
name:Allen,score:80.90
name:Barry,score:100.00
班级平均成绩为:74.02, 不及格人数为:2
作者: ximdefangzh 时间: 2015-9-29 20:05
继续努力!
作者: 哐啷 时间: 2015-9-29 21:36
这里学的略晕
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |