手机
当前位置:查字典教程网 >编程开发 >C语言 >C++结构体数组详细解析
C++结构体数组详细解析
摘要:1.定义结构体数组和定义结构体变量类似,定义结构体数组时只需声明其为数组即可。如:复制代码代码如下:structStudent{intnum...

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 Marrynn";

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;

}

C++结构体数组详细解析1

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

复制代码 代码如下:

#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 Marrynn";

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 Marrynn";

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;

}

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

【C++结构体数组详细解析】相关文章:

fcntl函数的使用详解

基于C++类型重定义的使用详解

pcre函数详细解析

C++ 类的静态成员深入解析

C++中继承与组合的区别详细解析

C++中一维数组与指针的关系详细总结

C++中const的用法详细总结

C++ explicit关键字的应用方法详细讲解

红黑树的使用详解

C与C++ 无参函数的区别解析

精品推荐
分类导航