943,788 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 729
  • C++ RSS
May 17th, 2008
0

Is there a simple option?

Expand Post »
Hey, I got bored so was making this program and i know how to get the highest and lowest number but I was wondering if there was a even quicker way, or would :

C++ Syntax (Toggle Plain Text)
  1. if( number1 > number2 && number1 > number3)
  2. highNum = number1;
  3.  
  4. else if( number2 > number1 && number2 > number3)
  5. highNum = number2;
  6.  
  7. else if( number3 > number1 && number3 > number2)
  8. highNum = number3;
  9.  
  10. if( number1 < number2 && number1 < number3)
  11. lowNum = number1;
  12.  
  13. else if( number2 < number1 && number2 < number3)
  14. lowNum = number2;
  15.  
  16. else if( number3 < number2 && number1 < number1)
  17. lowNum = number3;
Similar Threads
Reputation Points: 25
Solved Threads: 4
Junior Poster
Black Magic is offline Offline
177 posts
since Apr 2008
May 17th, 2008
0

Re: Is there a simple option?

put the numbers in an array
C++ Syntax (Toggle Plain Text)
  1. int array[3] = {3,1,5};
  2. int largest = array[0];
  3. int smallest = array[0];
  4. for(int i = 1; i < 3; i++)
  5. {
  6. if( array[i] > largest)
  7. largest = array[i];
  8. // now do similar for smallest
  9. }
Sponsor
Team Colleague
Featured Poster
Reputation Points: 5608
Solved Threads: 2282
Retired and Enjoying Life
Ancient Dragon is offline Offline
21,950 posts
since Aug 2005
May 17th, 2008
0

Re: Is there a simple option?

Potentially quicker, you can use the STL min and max template functions. It's definitely easier, but it gets tedious with more than a few numbers:
C++ Syntax (Toggle Plain Text)
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. int main()
  5. {
  6. int a = 0;
  7. int b = 1;
  8. int c = 2;
  9.  
  10. std::cout << "Low number: " << std::min(std::min(a, b), c) << '\n';
  11. std::cout << "High number: " << std::max(std::max(a, b), c) << '\n';
  12. }
Last edited by Radical Edward; May 17th, 2008 at 10:37 am.
Reputation Points: 361
Solved Threads: 97
Posting Pro
Radical Edward is offline Offline
526 posts
since May 2008
May 17th, 2008
0

Re: Is there a simple option?

How about:
C++ Syntax (Toggle Plain Text)
  1. #include <algorithm>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int numbers[] = { 12, -7, 42, 9 };
  8.  
  9. cout << "largest = " << max_element( numbers, numbers +4 ) << endl;
  10. cout << "smallest = " << min_element( numbers, numbers +4 ) << endl;
  11. }
Featured Poster
Reputation Points: 1140
Solved Threads: 229
Postaholic
Duoas is offline Offline
2,039 posts
since Oct 2007
May 18th, 2008
0

Re: Is there a simple option?

using c++09 variadic templates http://www.osl.iu.edu/~dgregor/cpp/v...-templates.pdf
C++ Syntax (Toggle Plain Text)
  1. #include <iostream>
  2.  
  3. template < typename T > T largest( T first, T second )
  4. { return first > second ? first : second ; }
  5.  
  6.  
  7. template < typename T, typename... U > T largest( T first, U... rest )
  8. { return largest( first, largest( rest... ) ) ; }
  9.  
  10. int main()
  11. {
  12. int n1=5, n2=7, n3=1 ;
  13. std::cout << largest( n1, 4, n2 ) << '\n' ;
  14. std::cout << largest( n1, 78, 3, n2, 12, n3 ) << '\n' ;
  15. }
  16.  
  17. // compile with: g++43 -Wall -std=c++0x -pedantic -Werror myfile.cc
Last edited by vijayan121; May 18th, 2008 at 12:20 am.
Reputation Points: 1159
Solved Threads: 285
Posting Virtuoso
vijayan121 is offline Offline
1,606 posts
since Dec 2006
May 18th, 2008
0

Re: Is there a simple option?

Geek.





/me runs off to try out this super coolness....
Featured Poster
Reputation Points: 1140
Solved Threads: 229
Postaholic
Duoas is offline Offline
2,039 posts
since Oct 2007
May 18th, 2008
0

Re: Is there a simple option?

Click to Expand / Collapse  Quote originally posted by vijayan121 ...
using c++09 variadic templates http://www.osl.iu.edu/~dgregor/cpp/v...-templates.pdf
C++ Syntax (Toggle Plain Text)
  1. #include <iostream>
  2.  
  3. template < typename T > T largest( T first, T second )
  4. { return first > second ? first : second ; }
  5.  
  6.  
  7. template < typename T, typename... U > T largest( T first, U... rest )
  8. { return largest( first, largest( rest... ) ) ; }
  9.  
  10. int main()
  11. {
  12. int n1=5, n2=7, n3=1 ;
  13. std::cout << largest( n1, 4, n2 ) << '\n' ;
  14. std::cout << largest( n1, 78, 3, n2, 12, n3 ) << '\n' ;
  15. }
  16.  
  17. // compile with: g++43 -Wall -std=c++0x -pedantic -Werror myfile.cc
just amazing.... {i had no intention of spamming , but this code is awesome...}
Reputation Points: 23
Solved Threads: 12
Posting Whiz in Training
n.aggel is offline Offline
202 posts
since Nov 2006

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: wxwidgets, getting started...
Next Thread in C++ Forum Timeline: Extract string and int from std::string





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC