C++構造體數組具體解析。本站提示廣大學習愛好者:(C++構造體數組具體解析)文章只能為提供參考,不一定能成為您想要的結果。以下是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;
}
然則,比擬較應用構造體的辦法,我們關於候選人和票數的關系,加倍直不雅,接洽加倍顯著。