• 微信号
  • 微信号
您当前的位置:首页 > 学海无涯 > 茑语花香>C语言结构体数组详解(带实例演示)

C语言结构体数组详解(带实例演示)

孤峰 C语言中文网 2023-06-15 191人阅读

所谓结构体数组,是指数组中的每个元素都是一个结构体。在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。

在C语言中,定义结构体数组和定义结构体变量的方式类似,请看下面的例子:

struct stu{ 
char *name; 
//姓名 
int num; 
//学号 
int age; 
//年龄 
char group; 
//所在小组 
float score; 
//成绩 
}class[5];

表示一个班级有5个学生。

结构体数组在定义的同时也可以初始化,例如:

struct stu{ 
char *name; 
//姓名 
int num; 
//学号 
int age; 
//年龄 
char group; 
//所在小组 
float score; 
//成绩 
}class[5] = { 
{"Li ping", 5, 18, 'C', 145.0}, 
{"Zhang ping", 4, 19, 'A', 130.5}, 
{"He fang", 1, 18, 'A', 148.5}, 
{"Cheng ling", 2, 17, 'F', 139.0}, 
{"Wang ming", 3, 17, 'B', 144.5} 
};

当对数组中全部元素赋值时,也可不给出数组长度,例如:

struct stu{ 
char *name; 
//姓名 
int num; 
//学号 
int age; 
//年龄 
char group; 
//所在小组 
float score; 
//成绩 
}class[] = { 
{"Li ping", 5, 18, 'C', 145.0}, 
{"Zhang ping", 4, 19, 'A', 130.5}, 
{"He fang", 1, 18, 'A', 148.5}, 
{"Cheng ling", 2, 17, 'F', 139.0}, 
{"Wang ming", 3, 17, 'B', 144.5} 
};

结构体数组的使用也很简单,例如,获取 Wang ming 的成绩:

class[4].score;

修改 Li ping 的学习小组:

class[0].group = 'B';

【示例】计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。

#include <stdio.h> 
struct{ 
char *name; 
//姓名 
int num; 
//学号 
int age; 
//年龄 
char group; 
//所在小组 
float score; 
//成绩 
}class[] = { 
{"Li ping", 5, 18, 'C', 145.0}, 
{"Zhang ping", 4, 19, 'A', 130.5}, 
{"He fang", 1, 18, 'A', 148.5}, 
{"Cheng ling", 2, 17, 'F', 139.0}, 
{"Wang ming", 3, 17, 'B', 144.5} 
}; 
int **in(){ 
int i, num_140 = 0; 
float sum = 0; 
for(i=0; i<5; i++){ 
sum += class.score; if(class.score < 140) num_140++; 
} 
printf("sum=%.2f\naverage=%.2f\nnum_140=%d\n", sum, sum/5, num_140); 
return 0; 
}

运行结果:

sum=707.50

average=141.50

num_140=2

转载:感谢您阅览,转载请注明文章出处“来源从小爱孤峰知识网:一个分享知识和生活随笔记录的知识小站”。

链接:C语言结构体数组详解(带实例演示)http://www.gufeng7.com/niaolang/366.html

联系:如果侵犯了你的权益请来信告知我们删除。邮箱:119882116@qq.com

标签: