#include<iostream>
#include<string>
#include<string.h>//memset()的头文件
using namespace std;
int main()
{
int n,i,j,max;
int key;
int flag;
string a[1001];//每一个元素为一个字符串数组
string c;
int b[1001]={0};//全部元素赋值为0 (定义声明的时候才能这样用)
while(1)
{
scanf("%d",&n);
getchar();
if(n==0)
break;
key=0;
// b[1001]={0};//这里这样初始化不成功,需要在定义时,才能使用这样的初始化
memset(b,0,sizeof(b));
for(i=0;i<n;i++)
{
cin>>c;
getchar();
flag=0;
for(j=0;j<=key;j++)
{
if(a[j]==c)
{
b[j]++;
flag=1;
}
}
if(!flag)
{
a[key]=c;
b[key]++;
key++;
}
}
i=0;
j=0;
max=b[0];
while(b[i++]!=0)
{
if(b[i]>max)
{
max=b[i];
j=i;
}
}
cout<<a[j]<<endl;
}
}
tip:
- ?定义整型数组或字符串数组时,为了以防不必要的错误,可以定义大于题目要求大小的数组
例如:当题目要求大小N时,通常声明大小为N+1。 - 初始化整型数组全部元素为0时,要注意b[100]={}或b[100]={0},这样是赋值不成功的,这两个方式只有在数组声明的时候使用才有效果,其他位置赋值,需要使用到memset()。
- C++中全局变量或者静态变量,未初始化的话会自动初始化为0,局部变量则为随机数。
- memset(数组名,值,数组内存大小),头文件为#include<string.h>。
C++中数组全部元素赋值为0方法汇总:
- 将局部数组改为全局数组。
- 声明时,“={0}”或“={}”。
- 使用memset(数组名,0,数组内存大小)? 例子:
int a[SIZE];
? memset(a, 0, sizeof(a));
memset(a, 0, sizeof(int)*1000);? ? ??
|