关于string 的问题
求助!!!!题目描述
找出出现次数最多的数字并输出, 如果有多个,那就按出现的先后顺序都输出
输入
EOF结束
每行给出一个数字
输出
如果出现最多的数字只有一个,那么就输出它就可以
如果出现最多的数字不止一个,那么就按出现的先后顺序输出(换行输出)
样例输入
1111111111111
1111111111111111111111111111
11111111111111
1111111111111111111111111111
1111111111111111111111111111
样例输出
1111111111111111111111111111
大家帮我看一下我的代码 谢谢啦
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
string s,str[100];
int number=1,a[100],flag=0,max1=0;
memset(a,0,sizeof(a));
scanf("%s",&str[1]);
a[1]=1;
while(scanf("%s",&s)!=EOF)
{
flag=0;
for(int i=1;i<=number;i++)
{
if(s==str[i])
{
++a[i];
break;
}
if(s!=str[i])
{
++flag;
}
}
if(flag==number)
{
number++;
str[number]=s;
}
}
for(int i=1;i<=number;i++)
{
if(a[i]>max1)
max1=a[i];
}
for(int i=1;i<=number;i++)
{
if(max1==a[i])
{
cout<<str[i]<<endl;
break;
}
}
return 0;
}
为什么使用EOF字符无法结束呢??
反而会
谢谢各位大佬啦