和定义结构体变量类似,定义结构体数组时只需声明其为数组即可。如: 复制代码代码如下:
struct Student{
int num;
char name[20];薛璐下载
char sex[5];
int age;
float score;
char addr[30];
};
Student stu[3]; //定义Student类型的数组stu
设有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;
}
}
ctif(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;
}
但是,相⽐较使⽤结构体的⽅法,我们对于候选⼈和票数的关系,更加直观,联系更加明显。