Looping function?

I'm new to C++ and currently taking an intro to programming class in school and am currently struggling to do what my professor is asking. We have to create the following program: Write a program that reads in five integers and determines and prints the largest and smallest integers in the group.

Using the only input variables: largest, smallest, number.

He said something about looping it so that it asks the user to input 5 different numbers but I can't seem to figure it out all the way. Below is what I currently have:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;

int main()

{
    int number; // user input
    int largest; // largest number
    int smallest; // smallest number
    int counter; 
    counter = 0;
    
    cout << "Please enter 5 numbers..." << endl << endl;
    cout << "Write any number: "; //user input
    cin >> number;
    
    largest = number;
    smallest = number;
    
    while (counter <= 3) //loops 5 times
    {
        cout << "Write any number: ";
        cin >> number;
        if (number > largest)
            largest = number;
        
        counter++;
    }
    cout << endl;
    cout << "The largest number is " << largest << " and the smallest number is " << smallest<< "." << endl; //display largest and smallest number
    
    system("pause");
    
    return 0;
}


Again, I'm new so I'm still learning. I have no idea what the "counter" is or how it's supposed to work, my classmate told me to put it in there. Any thoughts will be appreciated!
Last edited on
Update: It's still not working right -- now it won't give me the smallest number. I just keeps returning 0.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;

int main()

{
    int number; // user input
    int largest = 0; // largest number
    int smallest = 0; // smallest number
    int loop = 0; // to loop and ask for 5 integers
    
    cout << "Please enter 5 numbers..." << endl << endl;

    largest = number;
    smallest = number;
    
    for (loop=0;loop<5;)
    {
        cout << "Write any number: ";
        cin >> number;
        
        if (number > largest)
            largest = number;
        if (number < smallest)
            smallest = number;
        
        loop++;
    }
    cout << endl;
    cout << "The largest number is " << largest << " and the smallest number is " << smallest << "." << endl; // display largest and smallest number
    
    system("pause");
    
    return 0;
}
Last edited on
So it usually helps me to write it out on paper. Normally after the 3rd sheet of paper I have a solution :P

Write a program that reads in five integers and determines and prints the largest and smallest integers in the group.


This isn't hard at all, the trick seems to be in the part below.

Using the only input variables: largest, smallest, number.


Another trick that's going to help you might be
1
2
int largest=0;
int smallest=2147483646;


Based on the instructions, I think you need to enter the numbers one at a time and determine if it's the largest or smallest when it's entered.

The loop will then ask for the next number.

You can use a while loop, I prefer a for loop.

1
2
if (number > largest)
largest = number;


After the above you will add

1
2
if (number < smallest)
smallest=number;


I'd also make the instructions a bit more clear, saying to enter 5 numbers one at a time and from 0 to something less than 2,147,483,647
Building on what SamuelAdams added.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;

int main()

{
	int number; // user input
	int largest = 0; // largest number
	int smallest = numeric_limits<int>::max();; // smallest number

	for (int i = 0; i < 5; i++){
		cout << "Please enter 5 numbers..." << endl << endl;
		cout << "Write any number: "; //user input
		cin >> number;

		if (number > largest) {
			largest = number;
		}

		if (number < smallest) {
			smallest = number;
		}
	}

	cout << endl;
	cout << "The largest number is " << largest << " and the smallest number is " << smallest << "." << endl; //display largest and smallest number

	system("pause");

	return 0;
}
If you're going to use limits, don't forget to do the same thing for the `largest' value.
int largest = std::numeric_limits <decltype(largest)>::lowest();
An alternative approach is to initialize largest and smallest with the first value input.
Last edited on
Topic archived. No new replies allowed.