c 结构数组,C++动态分配结构体数组

c 结构数组,C++动态分配结构体数组,C++结构体数组详细解析

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

1.定义结构体数组

和定义结构体变量类似,定义结构体数组时只需声明其为数组即可。如:复制代码代码如下:结构学生{ int num char name[20];char sex[5];年龄浮动分数;char addr[30];};学生stu[3];//定义学生类型的数组斯图2.结构体数组的应用举例

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

设有3个候选人,最终只能有一个当选为领导。今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后能输出这3个候选人的的票结果。复制代码代码如下:# includeiostreamusing命名空间标准结构人员nbspnbspchar name[20];nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp/nbsp姓名nbspnbspnbspint计数;nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp票数计数器};int main(){ nbsp;nbspnbsp人物领袖[3]={ '汤姆',0,'尼奥',0,'玛丽',0 };nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp定义人类型的数组,内容为3个候选人的姓名和票数nbspnbspnbspint i,j,k=0;nbspnbspnbspbool标签;' nbspnbspnbspcout '请输入领导的姓名:汤姆尼奥玛丽\ n \ n ';nbspnbspnbspchar领导者名称[20];nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp/nbsp该数组为每次输入的候选人的名字nbspnbspnbspfor(I=0;i10i).nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp/nbsp循环输入这10个人选的候选人的名字nbspnbspnbspnbspnbspnbspnbsp " cout "输入名称" I 1 ":";nbspnbspnbspnbspnbspnbspnbspcinleadernamennbspnbspnbspnbspnbspnbsptag=1;nbspnbspnbspnbspnbspnbspfor(j=0;JBOY3乐队;j)nbsp .nbspnbspnbspnbspnbspnbspnbspnbspnbspif(strcmp(leader name,leader[j])。name)=0){ nbsp .nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp领导[j]的缩写.数数;nbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbspnbsptag=0;nbspnbspnbspnbspnbspnbspnbspnbspnbspnbsp } nbspnbspnbspnbspnbspnbsp } nbspnbspnbspnbspnbspnbspif(tag==1)k;nbspnbspnbsp } nbspnbspcoutend lnbspnbspnbspfor(I=0;i3;i ){nbsp .n .领导者,领导者.姓名':'领导[我]。' countendnbspnbspnbspnbspnbspnbsp } nbspnbspnbspnbspcout '废弃的门票:'肯德尔;nbspnbspnbsp返回0;}

当然,如果不使用结构体也可以解决这个问题:复制代码代码如下:# includeiostream # include stringusing使用命名空间stdint main(){ char * name[3]={ ' Tom ',' Neo ',' Marry ' };int count[3]={0,0,0 };int i,j,k=0;弯曲件标签=1;cout '请输入领导的姓名:汤姆尼奥玛丽\ n \ n ';char leader name[20];for(I=0;i10i ){ cout '输入名称I 1 ':cinleadernamefor(j=0;JBOY3乐队;j ){if(strcmp(leadername,name[j])==0){ count[j];tag=0;} } if(tag==1)k;tag=1;} coutendlfor(I=0;i3;I){ cout name[I]':' count[I]endl;}cout '弃票:'肯德尔返回0;}或者复制代码代码如下:# includeiostream # include stringusing使用命名空间stdint main(){ string name[3]={ ' Tom ',' Neo ',' Marry ' };int count[3]={0,0,0 };int i,j,k=0;弯曲件标签=1;cout '请输入领导的姓名:汤姆尼奥玛丽\ n \ n ';字符串leadername for(I=0;i10i ){ cout '输入名称I 1 ':cinleadernamefor(j=0;JBOY3乐队;j){ if(leader name==name[j]){ count[j];tag=0;} } if(tag==1)k;tag=1;} coutendlfor(I=0;i3;I){ cout name[I]':' count[I]endl;}cout '弃票:'肯德尔返回0;}但是,相比较使用结构体的方法,我们对于候选人和票数的关系,更加直观,联系更加明显。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: