标题:vector 中相关变量定义的问题
只看楼主
jkx08bener
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-1
结帖率:100%
已结贴  问题点数:10 回复次数:8 
vector 中相关变量定义的问题
读一组整数到vector对象,头尾元素两两配对,计算每对元素的和,并输出。如果读入元素为奇数个,则提示用户中间一个元素没有求和,并输出其值。(对于中间元素的处理老是出问题,怎么声明first和last比较好呢?自己的程序如下)
#include <iostream>
#include <vector>
using namespace std;
int main(){
    vector<int> ivec;
    int ival;
    cout<<"Enter numbers:"<<endl;
    while(cin>>ival)
        ivec.push_back(ival);
        if(ivec.size()==0){//计算首尾配对元素的和并输出
            cout<<"No element!"<<endl;
            return -1;
    }
    cout<<"Sum of each pair of counterpart elements in the vector:"<<endl;
    vector<int>::size_type cnt=0;
    vector<int>::size_type first=0;
    vector<int>::value_type last=0;
    for(vector<int>::size_type first=0,last=ivec.size()-1;first<last;++first,--last){
     cout<<ivec[first]+ivec[last]<<"\t";
     ++cnt;
     if(cnt%6==0)
         cout<<endl;
    }
    if(first==last)//提示居中元素没有求和
        cout<<endl
        <<"The center element is not been summed"<<"and its value is"<<ivec[first]<<endl;
    return 0;
}
怎么改才能让中间元素能正常符合题目显示呢?麻烦大家给与意见
搜索更多相关主题的帖子: 计算 element include numbers 
2012-11-07 17:06
JYIT
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:101
注 册:2012-10-17
得分:0 
给出定义部分人家才看得懂撒!
2012-11-07 17:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
将 for(vector<int>::size_type first=0, 中的 vector<int>::size_type 删掉

vector<int>::value_type last=0; 应该是 vector<int>::size_type last=0;
2012-11-08 10:51
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:10 
楼主 我也在看c++ primer 你问的是习题313吧 可以参考下偶的代码
程序代码:
#include <iostream>
#include <vector>

using namespace std;

int main(void)
{
    vector<int> ivec;
    vector<int>::size_type num=0,i=0;
    int input;
    bool flag=false;
    
    while ( cin >> input )
    {
        ivec.push_back(input);
    }
    num=ivec.size();
    
    if ((num%2) == 0)
    {
        if ( num == 0 )
        {
            cout<<"no numbers!"<<endl;
            flag=true;
        }
        for (i = 0; i != (num/2) && (!flag) ; i++ ) 
        {
            cout<<ivec[i]+ivec[num-i-1]<<" ";
        }
    }
    else
    {

        if ( num == 1 )
        {
            cout<<"only one number: "<<ivec[0]<<endl;
            flag=true;
        }
        for (i = 0; i != (num/2) && (!flag) ; i++ ) 
        {
            cout<<ivec[i]+ivec[num-i-1]<<" ";
        }
        if ( !flag )
        {
            cout<<ivec[num/2]<<" The last number is middle of input numbers!";
        }
        
    }
    
    return 0;
}

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-08 14:25
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:0 
楼主的代码是习题答案?

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-08 14:44
lxqlyld
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:116
专家分:125
注 册:2012-6-18
得分:0 
没看明白,帮顶一下
2012-11-08 17:38
jkx08bener
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-1
得分:0 
回复 4楼 mmmmmmmmmmmm
嗯,谢哈
2012-11-09 14:23
jkx08bener
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-1
得分:0 
回复 3楼 rjsp
嗯,太大意了
2012-11-09 14:25
jkx08bener
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-1
得分:0 
谢谢大家
2012-11-09 14:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-386306-1-1.html




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

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