C++ Sorting and Searching Exercise: Sort the values of three variables which contain any value
Write a C++ program to sort the values of three variables which contain any value (numbers and/or literals).
Sample Solution:
C++ Code :
// Including necessary C++ libraries
#include <iostream>
#include <string>
#include <vector>
// Template function to sort three variables of type T
template <class T>
void sort3var(T& x, T& y, T& z) {
// Creating a vector to hold the variables
std::vector<T> v;
// Adding variables x, y, and z to the vector
v.push_back(x);
v.push_back(y);
v.push_back(z);
// Boolean flag to control the sorting loop
bool b = true;
// Sorting loop using a bubble sort algorithm
while (b) {
b = false;
// Iterating through the vector elements for sorting
for (size_t i = 0; i < v.size() - 1; i++) {
// Checking if the current element is greater than the next element
if (v[i] > v[i + 1]) {
// Swapping elements if the condition is met
T t = v[i];
v[i] = v[i + 1];
v[i + 1] = t;
// Setting flag to continue sorting
b = true;
}
}
}
// Assigning sorted values back to variables x, y, and z
x = v[0];
y = v[1];
z = v[2];
}
// Main function
int main(int argc, char* argv[]) {
// Initializing integer variables x, y, and z
int x = 2539, y = 0, z = -2560;
// Sorting integers x, y, and z using sort3var function and displaying them
sort3var(x, y, z);
std::cout << x << "\n" << y << "\n" << z << "\n\n";
// Initializing string variables xstr, ystr, and zstr
std::string xstr, ystr, zstr;
xstr = "abcd, ABC, xzy";
ystr = "abc @ example . com!";
zstr = "(from the \"Page of 123\")";
// Sorting strings xstr, ystr, and zstr using sort3var function and displaying them
sort3var(xstr, ystr, zstr);
std::cout << xstr << "\n" << ystr << "\n" << zstr << "\n\n";
// Initializing floating-point variables xnf, ynf, and znf
float xnf = 100.3f, ynf = -36.5f, znf = 12.15f;
// Sorting floats xnf, ynf, and znf using sort3var function and displaying them
sort3var(xnf, ynf, znf);
std::cout << xnf << "\n" << ynf << "\n" << znf << "\n\n";
// Returning 0 to indicate successful execution
return 0;
}
Sample Output:
-2560 0 2539 (from the "Page of 123") abc @ example . com! abcd, ABC, xzy -36.5 12.15 100.3
Flowchart:
C++ Code Editor:
Contribute your code and comments through Disqus.
Previous: C++ Sorting and Searching Exercises Home
Next: Write a C++ program to sort an array of positive integers using the Bead sort algorithm.
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics