国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++結(jié)構(gòu)體數(shù)組詳細(xì)解析

2020-01-26 15:43:58
字體:
供稿:網(wǎng)友

1.定義結(jié)構(gòu)體數(shù)組

和定義結(jié)構(gòu)體變量類似,定義結(jié)構(gòu)體數(shù)組時(shí)只需聲明其為數(shù)組即可。如:

復(fù)制代碼 代碼如下:

struct Student{
     int num;
     char name[20];
     char sex[5];
     int age;
     float score;
     char addr[30];
};
Student stu[3]; //定義Student類型的數(shù)組stu

2.結(jié)構(gòu)體數(shù)組的應(yīng)用舉例

題目:對(duì)候選人的票的統(tǒng)計(jì)程序。

設(shè)有3個(gè)候選人,最終只能有一個(gè)當(dāng)選為領(lǐng)導(dǎo)。今有10個(gè)人參加投票,從鍵盤先后輸入這10個(gè)人所投的候選人的名字,要求最后能輸出這3個(gè)候選人的的票結(jié)果。

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
struct Person{
    char name[20];                       //姓名
    int count;                           //票數(shù)計(jì)數(shù)器
};
int main(){
    Person leader[3]={"Tom",0,"Neo",0,"Marry",0};
                                        //定義Person類型的數(shù)組,內(nèi)容為3個(gè)候選人的姓名和票數(shù)
    int i,j,k=0;
    bool tag;
    cout<<"please input the name of the leader : Tom Neo Marry/n/n";
    char leadername[20];                //該數(shù)組為每次輸入的候選人的名字
    for(i=0;i<10;i++){                   //循環(huán)輸入這10個(gè)人選的候選人的名字
        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;
}

當(dāng)然,如果不使用結(jié)構(gòu)體也可以解決這個(gè)問題:

復(fù)制代碼 代碼如下:

#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;
}

或者
復(fù)制代碼 代碼如下:

#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;
}

但是,相比較使用結(jié)構(gòu)體的方法,我們對(duì)于候選人和票數(shù)的關(guān)系,更加直觀,聯(lián)系更加明顯。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽阳市| 无锡市| 广宁县| 梅河口市| 新野县| 濉溪县| 海门市| 祁连县| 景德镇市| 河曲县| 远安县| 开平市| 恩平市| 渑池县| 耒阳市| 湖南省| 会泽县| 恭城| 武汉市| 玉环县| 共和县| 长兴县| 台南市| 绥中县| 将乐县| 壤塘县| SHOW| 朝阳县| 中西区| 巫溪县| 岐山县| 丹凤县| 台湾省| 三门峡市| 滁州市| 绥阳县| 河津市| 镇远县| 焉耆| 嘉鱼县| 汶上县|