源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-05-04 07:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++结构体数组详细解析
[b]1.定义结构体数组[/b] 和定义结构体变量类似,定义结构体数组时只需声明其为数组即可。如:
[u]复制代码[/u] 代码如下:
struct Student{      int num;      char name[20];      char sex[5];      int age;      float score;      char addr[30]; }; Student stu[3]; //定义Student类型的数组stu
[b]2.结构体数组的应用举例[/b] 题目:对候选人的票的统计程序。 设有3个候选人,最终只能有一个当选为领导。今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后能输出这3个候选人的的票结果。
[u]复制代码[/u] 代码如下:
#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; }
[img]http://files.jb51.net/file_images/article/201310/2013101610041913.jpg[/img] 当然,如果不使用结构体也可以解决这个问题:
[u]复制代码[/u] 代码如下:
#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; }
或者
[u]复制代码[/u] 代码如下:
#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; }
但是,相比较使用结构体的方法,我们对于候选人和票数的关系,更加直观,联系更加明显。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部