#include <iostream>
#include <conio.h>
using namespace std;
// The 2D array of integers to sort
const int size = 4;
int arr[size][size];
// Printing the array
void print_array(int& ar[][size], const int rows, const int cols);
// Sorting the array by row total
void sort_by_rows(int ar[][size], const int rows, const int cols);
// Sorting the array by columns total
void sort_by_columns(int ar[][size], const int rows, const int cols);
int main()
{
// Reading the array
cout << "Enter the integer elements of the array, please (total 16)\n";
for (int i = 0; i < size; i++)
& for (int j = 0; j < size; j++)
& cin >> arr[i][j];
cout << "The array is: " << endl;
print_array(arr, size, size);
// Define the method of sorting (by row total or by column total)
cout << "\nSort by row total or column total? (r/c) ";
char answer;
do
{
& answer = getch();
}
while (!(answer == 'c' || answer == 'r'));
putch(answer);
cout << endl << endl;
if (answer == 'r')
{
& // Sorting array by rows
& cout << "\nThe array sorted by row total: \n";
& sort_by_rows(arr, size, size);
& print_array(arr, size, size);
}
else
{
& // Sorting array by rows
& cout << "\nThe array sorted by column total: \n";
& sort_by_columns(arr, size, size);
& print_array(arr, size, size);
}
cout << endl;
return 0;
}
// Printing the array
void print_array(int ar[][size], const int rows, const int cols)
{
for (int i = 0; i < rows; i++)
{
& for (int j = 0; j < cols; j++)
& cout << ar[i][j] << "\t";
& cout << endl;
}
}
// Sorting the array by row total
void sort_by_rows(int ar[][size], const int rows, const int cols)
{
for(int i = 0; i < rows; i++)
{
& for(int j = 0; j < cols; j++)
& {
& for(int k = cols - 1; k > j; k--)
& if(ar[i][k-1] > ar[i][k])
& {
& int temp = ar[i][k-1];
& ar[i][k-1] = ar[i][k];
& ar[i][k] = temp;
& }
& }
}
}
// Sorting the array by columns total
void sort_by_columns(int ar[][size], const int rows, const int cols)
{
for(int j = 0; j < cols; j++)
{
& for(int i = 0; i < rows; i++)
& {
& for(int k = rows - 1; k > i; k--)
& if(ar[k-1][j] > ar[k][j])
& {
& int temp = ar[k-1][j];
& ar[k-1][j] = ar[k][j];
& ar[k][j] = temp;
& }
& }
}
}
Comments
Leave a comment