1004 Let the Balloon Rise
笔记:用memset对整个结构体数组进行初始化
如果结构体变量都是一致的,比如:
struct person{
int age;
int cost;
};
person per[10];
memset(per,0,sizeof(person)*10);
但是不一致就像下面的代码一样逐一遍历吧,因为如果在结构体定义时就初始化就出现warning
struct person{
int age;
int cost=0;
};
[Warning] non-static data member initializers only available with -std=c++11 or -std=gnu++11
Input
Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) -- the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.
A test case with N = 0 terminates the input and this test case is not to be processed.
Output
For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.
Sample Input
5 green red blue red red
0
Sample Output
red
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <string>
using namespace std;
struct balloon{
string color;
int num;
};
bool cmp(balloon a, balloon b){ //升序排列
return a.num>b.num;
}
int main()
{
int inputnum;
while(cin>>inputnum){
if(inputnum==0){
break;
}
balloon bal[100];
int b;
for(b=0; b<100;b++){ //对结构体数组中的每一个结构体元素的num变量进行初始化
bal[b].num = 0;
}
int i=0;
for(; inputnum!=0; inputnum--){
string input;
cin>>input;
if(i==0){ //输入的第一个颜色直接加到数组中
bal[i].color = input;
bal[i].num++;
i++;
}
else{
int j;
int flag = 0;
for(j=0; j<i; j++){
if(bal[j].color==input){ //在数组中找到了这个颜色
bal[j].num++;
flag = 1;
break;
}
}
if(flag==0){
bal[i].color = input; //没找到这个颜色
bal[i].num++;
i++;
}
}
}
sort(bal,bal+i-1,cmp);
cout<<bal[0].color<<endl; //降序排列输出第一个元素的color
}
return 0;
}