Re: please give me the coding please...
JetQi Tan <jetqi1011@gmail.com> wrote:
Modify the program to ask two integer numbers from the user and then
output all the integer numbers in
between these two numbers. Assume that the user will enter the first
number to be smaller than the
second number
Since there's no program to modify given here's a version that
should work according to your specifications:
#include <iostream>
#include <string>
#include <cstdlib>
#include <limits>
#include <vector>
#include <algorithm>
#include <boost/assign/std/vector.hpp>
static int b(){std::string s;std::getline(std::cin,s);char *ep;
long i=strtol(s.c_str(),&ep,10);return (ep!=s.c_str()+s.length()||i>
std::numeric_limits<int>::max()||i<std::numeric_limits<int>::min())?b():i;}
template<typename Q7>Q7 v(Q7 wr){std::cout<<wr<<std::endl;return wr;}
template<typename K1xQ>class next{private:K1xQ s;public:next(K1xQ s):s(s)
{}K1xQ operator()(){return v<K1xQ>(s++);}};
int main(){std::vector<int>q;q.push_back(b());
boost::assign::push_back(q).repeat_fun(b()-q.back()+1,next<int>(q.back()));}
Note that both numbers must be entered on their own lines with
no additional characters (like spaces etc.) before or after them.
Of course, there might be other and even slightly more efficient
ways to do it, but for this relatively simple problem it hope-
fully will be fast enough.
HTH, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de