程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++構造體數組具體解析

C++構造體數組具體解析

編輯:關於C++

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

然則,比擬較應用構造體的辦法,我們關於候選人和票數的關系,加倍直不雅,接洽加倍顯著。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved