一.定义
数组的元素类型为结构类型时,称为结构数组。
例.
struct employee
{int a;
double x;
};
employee c[10];
c[10]是一个有10个元素的数组,其中元素类型是employee类型。数组中的每一个元素包含两个数据成员。
c[0].a c[0].x
c[1].a c[1].x
…
c[9].a c[9].x
二.例题
1.设有三个候选人,最终只能有一人当选。现在有10个人参与投票,从键盘先后输入10个人所投的候选人的名字,要求最后输入3个候选人的得票结果。``
#include<iostream>
#include<cstring>
using namespace std;
struct person
{
char name[20];
int count;
};
int main()
{
person leader[3]= {"Li",0,"Zhang",0,"Fun",0};//定义person类型的数组,内容为3个候选人的姓名和当前的得票数
int i,j;
char leader_name[20];//leader-name是投票人所选的人的姓名
for(i=0; i<10; i++)
{
cin>>leader_name;//输入10张票上所写的名字
for(j=0; j<3; j++)//将票上姓名与3个候选人的姓名作比较
if(strcmp(leader_name,leader[j].name)==0)
leader[j].count++;//如果与某一候选人的姓名相同,就给他加一票
}
cout<<endl;
for(i=0; i<3; i++)
cout<<leader[i].name<<" :"<<leader[i].count<<endl;//输出3个候选人的姓名与最终得票数
return 0;
}
Zhang Fun Li Zhang Fun Li Zhang Fun Li Zhang
Li :3
Zhang :4
Fun :3
2.N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。
输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于1000的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
注意:白鼠的重量各不相同。
输出:按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
#include <iostream>
using namespace std;
struct whitemouse
{
char color[11];
int weight;
};
int main()
{
whitemouse temp;
int n,j,i;
cin>>n;
whitemouse mouse[n];
for(i=0; i<n; i++)
cin>>mouse[i].weight>>mouse[i].color;
for(i=0; i<n; i++)
{
for(j=i+1; j<n; j++)
if(mouse[i].weight<mouse[j].weight)
{
temp=mouse[i];
mouse[i]=mouse[j];
mouse[j]=temp;
}
}
for(i=0; i<n; i++)
cout<<mouse[i].color<<endl;
return 0;
}