944,162 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 9353
  • C++ RSS
Sep 23rd, 2004
1

beginners program; can't get min value

Expand Post »
Hello all....I can't seem to figure out why the min value won't display correctly. Could someone please critique my program with out actually giving me the code.

I am so happy that I finally got my loop to work! I've been working on this all evening. It is a great satisfaction when you get something to actually work!

Here is what I came up with:

# include <iostream>
using std::cout; //program uses cout
using std::cin; //program uses cin
using std::endl; //program uses endl

//function main begins program execution
int main ( )
{
int a; //number of values in set inputed by user
int b; //number inputed by user
int c; //counter
int max=0; //highest vaule
int min=0; //lowest value

//processing phase
//get input from user
cout << "Enter the number of values in the set: "; //prompt for input
cin >> a; //read number from user

for ( c=1; c <= a; c++ ) {

cout << "Enter a number: "; //prompt for input
cin >> b; //read number from user

if (b <= max)
min = b;

if (b > max)
max = b;
}

cout << "The maximum value is: " << max << " ";
cout << "The minimum value is: " << min << " " <<endl;

return 0; //indicates that program ended successfully

} //end function main
Similar Threads
tj
Reputation Points: 12
Solved Threads: 0
Newbie Poster
tj is offline Offline
8 posts
since Sep 2004
Sep 23rd, 2004
0

Re: beginners program; can't get min value

      if (b <= max)
          min = b;
Perhaps you should compare the current min.
C++ Syntax (Toggle Plain Text)
  1. int max=0; //highest vaule
  2. int min=0; //lowest value
You would probably want to initialize both to the first element in the list or else set the max to the lowest int value (INT_MIN) and the min to the highest int value (INT_MAX).
Team Colleague
Reputation Points: 2780
Solved Threads: 312
long time no c
Dave Sinkula is offline Offline
4,790 posts
since Apr 2004
Sep 24th, 2004
0

Re: beginners program; can't get min value

That makes more sense than what I had down. Thank you!

I tried followed the program (after corrections) via paper and it seems to work but, when I run the program on the computer it is still not comming up with the correct results.

Here is the prog again with the corrections

# include <iostream>
using std::cout; //program uses cout
using std::cin; //program uses cin
using std::endl; //program uses endl

//function main begins program execution
int main ( )
{
int a; //number of values in set inputed by user
int b; //number inputed by user
int c; //counter
int max; //highest vaule
int min; //lowest value

//initialization phase
max = b;
min = b;

//processing phase
//get input from user
cout << "Enter the number of values in the set: "; //prompt for input
cin >> a; //read number from user

for ( c=1; c <= a; c++ ) {

cout << "Enter a number: "; //prompt for imput
cin >> b; //read number from user

if (b > max)
max = b;

if (b < min)
min = b;
}
cout << "The maximum value is: " << max << "\n";
cout << "The minimum value is: " << min << " " <<endl;


return 0; //indicates that program ended successfully

} //end function main
tj
Reputation Points: 12
Solved Threads: 0
Newbie Poster
tj is offline Offline
8 posts
since Sep 2004
Sep 24th, 2004
1

Re: beginners program; can't get min value

Why don't you try out this instead?
# include <iostream>
using std::cout; //program uses cout
using std::cin; //program uses cin
using std::endl; //program uses endl

//function main begins program execution
int main ( )
{
int a; //number of values in set inputed by user
int b; //number inputed by user
int c; //counter
int max; //highest vaule
int min; //lowest value

//processing phase
//get input from user
cout << "Enter the number of values in the set: "; //prompt for input
cin >> a; //read number from user

// this number is used as the starting variable considered as max value
cout << "Enter a number: "; //prompt for imput
cin >> b; //read number from user

max=b;
min=b;

int d; // create a new variable

for ( c=1; c < a; c++ ) {

cout << "Enter another number: ";
cin >> d;

if(d > max) // if the num > max, then num is bigger
max = d;

else if (d < min) // if the second num < min, then num is smaller
min = d;
}

cout << "The maximum value is: " << max << "\n";
cout << "The minimum value is: " << min << " " <<endl;


return 0; //indicates that program ended successfully

} //end function main[/QUOTE]
Reputation Points: 11
Solved Threads: 0
Newbie Poster
kevin85 is offline Offline
1 posts
since Sep 2004
Sep 24th, 2004
0

Re: beginners program; can't get min value

Quote originally posted by mtjuarez ...
I tried followed the program (after corrections) via paper and it seems to work but, when I run the program on the computer it is still not comming up with the correct results.
Let's try this "on paper".

You declare 5 integer variables, but none are initialized to any value -- so their values are completely random.
C++ Syntax (Toggle Plain Text)
  1. # include <iostream>
  2. using std::cout; //program uses cout
  3. using std::cin; //program uses cin
  4. using std::endl; //program uses endl
  5.  
  6. //function main begins program execution
  7. int main ( )
  8. {
  9. int a; //number of values in set inputed by user
  10. int b; //number inputed by user
  11. int c; //counter
  12. int max; //highest vaule
  13. int min; //lowest value
You initialize max and min to the unitialized value of b. So your max and min values are still random values, but both are the same random value that b had when the program started.
C++ Syntax (Toggle Plain Text)
  1. //initialization phase
  2. max = b;
  3. min = b;
C++ Syntax (Toggle Plain Text)
  1. //processing phase
  2. //get input from user
  3. cout << "Enter the number of values in the set: "; //prompt for input
  4. cin >> a; //read number from user
  5.  
  6. for ( c=1; c <= a; c++ ) {
Now you finally get a value for b.
C++ Syntax (Toggle Plain Text)
  1. cout << "Enter a number: "; //prompt for imput
  2. cin >> b; //read number from user
Then you are comparing the value entered for b with whatever random values min and max were when the program started. Maybe this will work, maybe not.
C++ Syntax (Toggle Plain Text)
  1. if (b > max)
  2. max = b;
  3.  
  4. if (b < min)
  5. min = b;
C++ Syntax (Toggle Plain Text)
  1. }
  2. cout << "The maximum value is: " << max << "\n";
  3. cout << "The minimum value is: " << min << " " <<endl;
  4.  
  5.  
  6. return 0; //indicates that program ended successfully
  7.  
  8. } //end function main
Here is another way to do this.
C++ Syntax (Toggle Plain Text)
  1. #include <climits> // for INT_MIN, INT_MAX
  2. #include <iostream>
  3. using std::cout;
  4. using std::cin;
  5. using std::endl;
  6.  
  7. int main()
  8. {
  9. int size; // number of values in set inputed by user
  10. int value; // number inputed by user
  11. int i; // counter
  12. int high = INT_MIN; //highest value
  13. int low = INT_MAX; //lowest value
  14.  
  15. cout << "Enter the number of values in the set: ";
  16. cin >> size;
  17.  
  18. for ( i = 0; i < size; i++ )
  19. {
  20. cout << "Enter a number: ";
  21. cin >> value;
  22.  
  23. if(value > high)
  24. {
  25. high = value;
  26. }
  27. if(value < low)
  28. {
  29. low = value;
  30. }
  31. }
  32. cout << "The maximum value is: " << high << "\n";
  33. cout << "The minimum value is: " << low << endl;
  34. return 0;
  35. }
  36.  
  37. /* my output
  38.   Enter the number of values in the set: 5
  39.   Enter a number: -4
  40.   Enter a number: 9
  41.   Enter a number: 15
  42.   Enter a number: 2
  43.   Enter a number: -1
  44.   The maximum value is: 15
  45.   The minimum value is: -4
  46.   */
Team Colleague
Reputation Points: 2780
Solved Threads: 312
long time no c
Dave Sinkula is offline Offline
4,790 posts
since Apr 2004
Sep 24th, 2004
0

Re: beginners program; can't get min value

<climits> is a new header file for me. we have only used <iostream> so far. my instructor refers to a std library occasionally; is this part of my software (i'm using microsoft visual c++ 6.0 intro edition)? Is that where I pull up headers to use?

I am going to keep playing with statements and headers and see what kind of monster I can create....lol

Thanks for your help guys!
PS
Out of curiosity...how long did it take for yall to learn C++? Did you learn it from a class or on your own?
tj
Reputation Points: 12
Solved Threads: 0
Newbie Poster
tj is offline Offline
8 posts
since Sep 2004
Sep 24th, 2004
0

Re: beginners program; can't get min value

Quote originally posted by mtjuarez ...
<climits> is a new header file for me. we have only used <iostream> so far. my instructor refers to a std library occasionally; is this part of my software
Like <iostream>, <climits> is part of the standard library. Others are listed here (click on the paws if you get the "Limited Access Notice" page).

Quote originally posted by mtjuarez ...
(i'm using microsoft visual c++ 6.0 intro edition)
My condolences. :p

Quote originally posted by mtjuarez ...
Out of curiosity...how long did it take for yall to learn C++? Did you learn it from a class or on your own?
I'm still trying to learn on my own.
Team Colleague
Reputation Points: 2780
Solved Threads: 312
long time no c
Dave Sinkula is offline Offline
4,790 posts
since Apr 2004
Sep 25th, 2004
0
Re: beginners program; can't get min value
How do you delete posts
Reputation Points: 15
Solved Threads: 1
Junior Poster
chound is offline Offline
143 posts
since Aug 2004

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: A little help please?
Next Thread in C++ Forum Timeline: Problem getting SDL to work with Dev-C++





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


Follow us on Twitter


© 2011 DaniWeb® LLC