| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1547 人关注过本帖
标题:关于string 的问题
只看楼主 加入收藏
流照君
Rank: 2
等 级:论坛游民
帖 子:66
专家分:74
注 册:2018-5-7
结帖率:70%
收藏
已结贴  问题点数:6 回复次数:5 
关于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字符无法结束呢??
反而会
图片附件: 游客没有浏览图片的权限,请 登录注册

谢谢各位大佬啦
搜索更多相关主题的帖子: 出现 输出 str int number 
2019-03-03 11:20
流照君
Rank: 2
等 级:论坛游民
帖 子:66
专家分:74
注 册:2018-5-7
收藏
得分:0 
在线等 挺急的
2019-03-03 14:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:6 
    string s;
    while(scanf("%s",&s)!=EOF)
搞笑来的吧
2019-03-04 00:40
流照君
Rank: 2
等 级:论坛游民
帖 子:66
专家分:74
注 册:2018-5-7
收藏
得分:0 
回复 3楼 rjsp
刚刚才知道scanf不可以使用string做对象
那应该怎么做呢????
谢啦
2019-03-04 16:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
scanf( "%s", 这里要求一个char*的变量,且其指向的可用存储空间大于实际输入的字符数 )

std::string 当然得用 std::cin
#include <string>
for( string s; cin>>s; )


2019-03-04 16:20
cstdio
Rank: 5Rank: 5
来 自:上海市静安区
等 级:贵宾
威 望:15
帖 子:97
专家分:44
注 册:2018-5-30
收藏
得分:0 
程序代码:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#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));//stdlib.h
    scanf("%s",&str[1]);
    a[1]=1;
    while(cin>>s)
    {
        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;
}

import random
i=random.randint(100,100000)
print i
2019-03-28 18:08
快速回复:关于string 的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031622 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved