结构体数组(C++)
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++)相关推荐
- 【C++】【一】结构体数组
demo7:函数份文件编写 swap.h #include <iostream> using namespace std;//函数的声明 void swap(int a, int b); ...
- 【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)
一.用的二维数组 #include <iostream> #include <cstring> #include <algorithm> using namespa ...
- 【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)
使用二维数组或者结构体数组都可以,但是在计数的时候有一点点小区别 一.结构体数组 #include <cstdio> #include <cstring> #include & ...
- 使用结构体数组统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p165 习题6 3.输入10个学生的信息(包括学号.姓名.性别.年龄.成绩)组成结构体数组,分别统计男 ...
- matlab多维数组、结构体数组
1.多维数组 第三维称为页,需要注意的是每一页存放的二维数组维度要一致,也就是行列数要一致... 1 2 3 4 5 6 7 a=[1,2; 3,4]; b=[2,2; 5,6]; A ...
- c拆分字符串,并按照指定格式存入结构体数组
c将字符串拆分,并按照指定格式存入结构体数组 函数功能 代码实现 结果显示 函数功能 字符串格式:username1,password1;username2,password2; 结构体格式: typ ...
- 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )
文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...
- 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )
文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...
- golang结构体数组
转自: https://www.liaotaoo.cn/200.html package mainimport "fmt"type student struct{id intnam ...
- C语言结构体和结构体数组示例 - Win32窗口程序演示
C语言结构体和结构体数组的使用: /* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, ...
最新文章
- 列表组件之RecyclerView
- 分析与设计(AD)简介(3)
- DPDK KNI实现(二十五)
- 计算机内存与内置类型,笔记本内存种类有哪些 笔记本常见内存类型介绍
- Python利用双端队列判断回文词
- 【大话设计模式】——简单工厂模式
- 二倍图css,css二倍图的使用
- python定时重新初始化类_如何重新初始化类对象
- socket通信需要网线连接吗_socket方式实现网络通信
- 网站在微信中提示从浏览器打开
- 自定义容器实现类似Windows屏保功能
- STM32中挂载SDRAM内存说明
- 在加洲,我与我的加洲宝贝儿
- 软件工程-第三章 软件需求分析1
- 魔兽世界az端和TC端有什么区别 Mangos,TC,SW,AZ,AC的关系
- 异物堆积,导致手机Type-C接口充电不畅、无法充电的问题
- 微信小程序刷新页面数据
- Tex插入各种希腊字母
- 百度地图自定义地图类型瓦片底图
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验三《敏捷开发与XP实践》 实验报告...
热门文章
- 大一计算机应用基础答案李小艳,13级幼师班期末考试计算机试题A卷
- Photoshop制作八张一寸证件照
- 鸿蒙系统和中标麒麟系统关系,操作系统有哪些 先有鸿蒙后有麒麟V10 为5G时代量身定做...
- linux上soul网关开通,soul 网关入门篇(一):搭建篇
- java静态代码块和构造方法_Java静态代码块和构造方法执行顺序
- pandas 删除行
- Java Spring 异常处理
- 编程语言对比 基本数据类型
- linux对某个文件进行操作步骤,实验二 Linux系统简单文件操作命令
- 生产环境实施 VMware 虚拟化基础架构,千万不要犯 4 个错误