9.2 使用结构体数组

9.2  使用结构体数组

一个结构体变变量中可以存放一组有关联的数据(如一个学生的学号,姓名,成绩等)。如果由10个学生的数据需要参加运算,显然应该用到数组,这就是结构体数组。

结构体数组与之前的数值型的不同之处在于每一个数组元素都是一个结构体类型的数据,它们分别包括各个成员项。

9.2.1  定义结构体数组

例题:有3个候选人,每个选民只能投票选一人,要求编写一个统计选票的程序,先输入被选人的名字,最后输入各人的得票结果。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>

struct Person{
	char name[20];
	int  count;
}leader[3] = { "a",0, "b", 0, "c", 0};

int main(){
	int i, j;
	char leader_name[20];
	printf("请输入你选择的候选人姓名\n");
	for (i = 0; i < 10; i++){
		scanf("%s", leader_name);
		for (j = 0; j <= 3; j++){
			if (strcmp(leader_name, leader[j].name) == 0){
				leader[j].count++;
			}
		}
	}

	printf("\n选票结果如下:\n");
	for (i = 0; i < 3; i++){
		printf("%5s:%d\n", leader[i].name, leader[i].count);
	}
	return 0;
}

运行结果如下(输入5次a,3次b,2次c):

程序分析:定义了一个全局的结构体数组leader,它有3个元素,每个元素包含两个成员name(姓名)和count(票数)。在定义数组时初始化{ "a",0, "b", 0, "c", 0}。

在主函数main中定义一个字符数组leader_name,用它存放被选人的姓名。在每次循环中输入一个被选人的姓名,然后把它与结构体数组中的3个候选人名单相比。一旦相等,该姓名对应count自增。一共循环10次。
 

说明:

(1)定义结构体数组一般形式是:

  1. struct 结构体名{成员表列} 数组名[数组长度];
  2. 结构体类型 数组名 [数组长度];先声明一个结构体类型(如struct Person),然后再用此类型定义结构体数组。

(2)对结构体数组初始化的形式是在定义数组的后面加上: = {初值表列};如:

struct Person leader = {"a",0,"b",0,"c",0};

9.2.2  结构体数组的应用举例

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值