| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:vector问题求助
只看楼主 加入收藏
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
vector问题求助
#include<iostream>
  #include<string>  
  #include<vector>
  #include<algorithm>

  using namespace std;
  typedef vector<double>::size_type vec_sz;
  
  int main(){
  vector<string> passage;
  vector<double> numble;
  string x;
  cout<<"Please input one passage:"<<endl;
  cin>>x;
  while(x!="0"){
      passage.push_back(x);
      cin>>x;
  }
  vec_sz count,size=passage.size();

  cout<<"The original passage is:"<<endl;
  for(count=0;count!=size;count++){
      cout<<passage[count];
  }  
  /*for(count=0;count!=size;count++)
      numble[count]=passage[count].size();*/
  for(count=0;count!=size;count++)
      cout<<numble[count];
  sort(numble.begin(),numble.end());
  for(count=0;passage[count].size()==numble[0];count++)
      cout<<"The shortest words are:"<<passage[count]<<endl;
  for(count=0;passage[count].size()==numble[size-1];count++)
      cout<<"The longest words are:"<<passage[count]<<endl;
  return 0;
  }



return 0;
}
  为什么编译可以通过  但是一运行就错误,觉得/* 之间那句有问题,但是考虑后面要对字符长度进行排序,不这样不好办,请各位高手指点,非常感谢。
搜索更多相关主题的帖子: original 
2011-01-24 10:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    vector<string> passage;

    cout << "Please input one passage:" << endl;
    for( string x; cin>>x && x!="0"; )
        passage.push_back(x);

    cout << "The original passage is:" << endl;
    for( size_t i=0; i!=passage.size(); ++i )
        cout << passage[i] << '\n';
    cout << flush;

    vector<double> numble;
    for( size_t i=0; i!=passage.size(); ++i )
        numble.push_back( passage[i].size() );

    for( size_t i=0; i!=numble.size(); ++i )
        cout << numble[i] << '\n';
    cout << flush;

    sort( numble.begin(), numble.end() );

    size_t ms;
    for( ms=0; passage[ms].size()!=numble[0]; ++ms );
    cout << "The shortest words are:" << passage[ms] << endl;

    size_t ml;
    for( ml=0; passage[ml].size()!=numble.back(); ++ml );
    cout << "The longest words are:" << passage[ml] << endl;

    return 0;
}
/*
输入:ab abc a abcdef abcd
输出:
The original passage is:
ab
abc
a
abcdef
abcd
2
3
1
6
4
The shortest words are:a
The longest words are:abcdef
*/
2011-01-24 11:17
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
收藏
得分:0 
回复 2楼 rjsp
非常感谢  但问一下 为什么最后输出条件是passage[ms].size()!=numble[0]; 而不是 passage[ms].size()==numble[0];
还有如果有多个字符串长度相等,你的程序好像只能输出第一个。
2011-01-24 23:36
快速回复:vector问题求助
数据加载中...
 
   



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

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