wu


私信TA

用户名:cncfvc

访问量:226464

签 名:

读研狗没有时间刷题了~~

等  级
排  名 4
经  验 37276
参赛次数 8
文章发表 265
年  龄 25
在职情况 学生
学  校 电子科技大学
专  业 通信工程

  自我简介:

写代码 真好玩 ~

这里有个易错点就是 用sort排序并不能保证

在最大字符串长度相等的情况下  先出现的先输出  所以小心一些

sort排序的出的最大值不一定是先出现的那个值。

参考代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct P
{
	string str;
	int num;
}a[100006];
int main()
{
   //freopen("data.in.txt","r",stdin);
   //freopen("data.out.txt","w",stdout);
   string str;
   int max=-999;
   int i=0;
   while(cin>>str)
   {
   	a[i].str=str;
	a[i++].num =str.length(); 
	if(a[--i].num>max)
	max=a[i++].num;
   } 
   for(int j=0;j<i;j++)
   {
   	if(a[j].num==max)
   	cout<<a[j].str<<endl;
   }
   return 0;	
}


 

0.0分

0 人评分

  评论区

for(int j=0;j<i;j++)
   {
     if(a[j].num==max)
     cout<<a[j].str<<endl;
   }

为什么这个不会输出长度一样的单词呢?
不应该在if语句里加一个break吗?
2018-09-27 23:45:12
  • «
  • 1
  • »