1.定义结构体数组

和定义结构体变量类似,定义结构体数组时只需声明其为数组即可。如:

struct Student{int num;char name[20];char sex[5];int age;float score;char addr[30];
};
Student stu[3]; //定义Student类型的数组stu

2.结构体数组的应用举例

题目:对候选人的票的统计程序。

设有3个候选人,最终只能有一个当选为领导。今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后能输出这3个候选人的的票结果。

#include<iostream>
using namespace std;
struct Person{char name[20];                       //姓名 int count;                           //票数计数器
};
int main(){Person leader[3]={"Tom",0,"Neo",0,"Marry",0};//定义Person类型的数组,内容为3个候选人的姓名和票数int i,j,k=0;bool tag;cout<<"please input the name of the leader : Tom Neo Marry\n\n";char leadername[20];                //该数组为每次输入的候选人的名字for(i=0;i<10;i++){                   //循环输入这10个人选的候选人的名字 cout<<"input name "<<i+1<<" :"; cin>>leadername; tag=1;for(j=0;j<3;j++){if(strcmp(leadername,leader[j].name)==0){leader[j].count++;tag=0;}} if(tag==1)k++;} cout<<endl;for(i=0;i<3;i++){cout<<leader[i].name<<":"<<leader[i].count<<endl;    }  cout<<"Abandoned tickets:"<<k<<endl;return 0;
}

当然,如果不使用结构体也可以解决这个问题:

#include<iostream>
#include<string>
using namespace std;
int main(){char *name[3]={"Tom","Neo","Marry"};int    count[3]={0,0,0};int    i,j,k=0;bool tag=1;cout<<"please input the name of the leader : Tom Neo Marry\n\n";char leadername[20];                for(i=0;i<10;i++){                 cout<<"input name "<<i+1<<" :"; cin>>leadername; for(j=0;j<3;j++){if(strcmp(leadername,name[j])==0){count[j]++;tag=0;}} if(tag==1)k++;tag=1;} cout<<endl;for(i=0;i<3;i++){cout<<name[i]<<":"<<count[i]<<endl;    }cout<<"Abandoned tickets:"<<k<<endl;return 0;
}

或者

#include<iostream>
#include<string>
using namespace std;
int main(){string name[3]={"Tom","Neo","Marry"};int    count[3]={0,0,0};int    i,j,k=0;bool tag=1;cout<<"please input the name of the leader : Tom Neo Marry\n\n";string leadername;                for(i=0;i<10;i++){                 cout<<"input name "<<i+1<<" :"; cin>>leadername; for(j=0;j<3;j++){if(leadername==name[j]){count[j]++;tag=0;}} if(tag==1)k++;tag=1;} cout<<endl;for(i=0;i<3;i++){cout<<name[i]<<":"<<count[i]<<endl;   }cout<<"Abandoned tickets:"<<k<<endl;return 0;
}

但是,相比较使用结构体的方法,我们对于候选人和票数的关系,更加直观,联系更加明显。

转载于:https://www.cnblogs.com/zhezh/p/3773528.html

结构体数组(C++)相关推荐

  1. 【C++】【一】结构体数组

    demo7:函数份文件编写 swap.h #include <iostream> using namespace std;//函数的声明 void swap(int a, int b); ...

  2. 【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)

    一.用的二维数组 #include <iostream> #include <cstring> #include <algorithm> using namespa ...

  3. 【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)

    使用二维数组或者结构体数组都可以,但是在计数的时候有一点点小区别 一.结构体数组 #include <cstdio> #include <cstring> #include & ...

  4. 使用结构体数组统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p165 习题6 3.输入10个学生的信息(包括学号.姓名.性别.年龄.成绩)组成结构体数组,分别统计男 ...

  5. matlab多维数组、结构体数组

    1.多维数组 第三维称为页,需要注意的是每一页存放的二维数组维度要一致,也就是行列数要一致... 1 2 3 4 5 6 7 a=[1,2;     3,4]; b=[2,2;     5,6]; A ...

  6. c拆分字符串,并按照指定格式存入结构体数组

    c将字符串拆分,并按照指定格式存入结构体数组 函数功能 代码实现 结果显示 函数功能 字符串格式:username1,password1;username2,password2; 结构体格式: typ ...

  7. 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )

    文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...

  8. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  9. golang结构体数组

    转自: https://www.liaotaoo.cn/200.html package mainimport "fmt"type student struct{id intnam ...

  10. C语言结构体和结构体数组示例 - Win32窗口程序演示

    C语言结构体和结构体数组的使用: /* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, ...

最新文章

  1. 列表组件之RecyclerView
  2. 分析与设计(AD)简介(3)
  3. DPDK KNI实现(二十五)
  4. 计算机内存与内置类型,笔记本内存种类有哪些 笔记本常见内存类型介绍
  5. Python利用双端队列判断回文词
  6. 【大话设计模式】——简单工厂模式
  7. 二倍图css,css二倍图的使用
  8. python定时重新初始化类_如何重新初始化类对象
  9. socket通信需要网线连接吗_socket方式实现网络通信
  10. 网站在微信中提示从浏览器打开
  11. 自定义容器实现类似Windows屏保功能
  12. STM32中挂载SDRAM内存说明
  13. 在加洲,我与我的加洲宝贝儿
  14. 软件工程-第三章 软件需求分析1
  15. 魔兽世界az端和TC端有什么区别 Mangos,TC,SW,AZ,AC的关系
  16. 异物堆积,导致手机Type-C接口充电不畅、无法充电的问题
  17. 微信小程序刷新页面数据
  18. Tex插入各种希腊字母
  19. 百度地图自定义地图类型瓦片底图
  20. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验三《敏捷开发与XP实践》 实验报告...

热门文章

  1. 大一计算机应用基础答案李小艳,13级幼师班期末考试计算机试题A卷
  2. Photoshop制作八张一寸证件照
  3. 鸿蒙系统和中标麒麟系统关系,操作系统有哪些 先有鸿蒙后有麒麟V10 为5G时代量身定做...
  4. linux上soul网关开通,soul 网关入门篇(一):搭建篇
  5. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序
  6. pandas 删除行
  7. Java Spring 异常处理
  8. 编程语言对比 基本数据类型
  9. linux对某个文件进行操作步骤,实验二 Linux系统简单文件操作命令
  10. 生产环境实施 VMware 虚拟化基础架构,千万不要犯 4 个错误