Update MP2
This commit is contained in:
142
Assignments/MP2_CalebFontenot_clion/2DArrayOperations.cpp
Normal file
142
Assignments/MP2_CalebFontenot_clion/2DArrayOperations.cpp
Normal file
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// Created by caleb on 3/6/24.
|
||||
//
|
||||
#import <iostream>
|
||||
#import <vector>
|
||||
#include <exception>
|
||||
#include <climits>
|
||||
|
||||
class OutOfBoundsException: public std::exception {
|
||||
virtual const char* what() const throw()
|
||||
{
|
||||
return "Method attempted to call a vector location that was larger than the vector itself.";
|
||||
}
|
||||
} OutOfBoundsException;
|
||||
|
||||
int getTotal(std::vector<int> arr) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
sum += arr[i];
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int getTotal(std::vector<std::vector<int>> arr) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
sum += getTotal(arr[i]);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int getAverage(std::vector<int> arr) {
|
||||
return getTotal(arr) / arr.size(); // NOLINT(*-narrowing-conversions)
|
||||
}
|
||||
|
||||
int getAverage(std::vector<std::vector<int>> arr) {
|
||||
return getTotal(arr) / arr.size();
|
||||
}
|
||||
|
||||
int getRowTotal(std::vector<std::vector<int>> arr, int desiredRow) {
|
||||
// validate
|
||||
if (desiredRow > arr[desiredRow].size()) {
|
||||
throw OutOfBoundsException;
|
||||
}
|
||||
int sum = 0;
|
||||
for (int i = 0; i < arr[desiredRow].size(); ++i) {
|
||||
sum += arr[desiredRow][i];
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int getColumnTotal(std::vector<std::vector<int>> arr, int desiredColumn) {
|
||||
// validate
|
||||
if (desiredColumn > arr.size()) {
|
||||
throw OutOfBoundsException;
|
||||
}
|
||||
int sum = 0;
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
sum += arr[i][desiredColumn];
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int getHighestInRow(std::vector<std::vector<int>> arr, int desiredRow) {
|
||||
// validate
|
||||
if (desiredRow > arr[desiredRow].size()) {
|
||||
throw OutOfBoundsException;
|
||||
}
|
||||
int highest = INT_MIN;
|
||||
for (int i = 0; i < arr[desiredRow].size(); ++i) {
|
||||
if (arr[desiredRow][i] > highest) {
|
||||
highest = arr[desiredRow][i];
|
||||
}
|
||||
}
|
||||
return highest;
|
||||
}
|
||||
|
||||
int getLowestInRow(std::vector<std::vector<int>> arr, int desiredRow) {
|
||||
// validate
|
||||
if (desiredRow > arr[desiredRow].size()) {
|
||||
throw OutOfBoundsException;
|
||||
}
|
||||
int lowest = INT_MAX;
|
||||
for (int i = 0; i < arr[desiredRow].size(); ++i) {
|
||||
if (arr[desiredRow][i] < lowest) {
|
||||
lowest = arr[desiredRow][i];
|
||||
}
|
||||
}
|
||||
return lowest;
|
||||
}
|
||||
|
||||
int getHighestInColumn(std::vector<std::vector<int>> arr, int desiredColumn) {
|
||||
// validate
|
||||
if (desiredColumn > arr.size()) {
|
||||
throw OutOfBoundsException;
|
||||
}
|
||||
int highest = INT_MIN;
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
if (arr[i][desiredColumn] > highest) {
|
||||
highest = arr[i][desiredColumn];
|
||||
}
|
||||
}
|
||||
return highest;
|
||||
}
|
||||
|
||||
int getLowestInColumn(std::vector<std::vector<int>> arr, int desiredColumn) {
|
||||
// validate
|
||||
if (desiredColumn > arr.size()) {
|
||||
throw OutOfBoundsException;
|
||||
}
|
||||
int lowest = INT_MAX;
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
if (arr[i][desiredColumn] < lowest) {
|
||||
lowest = arr[i][desiredColumn];
|
||||
}
|
||||
}
|
||||
return lowest;
|
||||
}
|
||||
|
||||
std::string printVector(std::vector<int> arr) {
|
||||
std::string output = "{";
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
output.append(std::to_string(arr[i]));
|
||||
if ((arr.size() - 1) > i) {
|
||||
output.append(", ");
|
||||
}
|
||||
}
|
||||
output.append("}");
|
||||
return output;
|
||||
}
|
||||
|
||||
std::string printVector(std::vector<std::vector<int>> arr) {
|
||||
std::string output = "{\n";
|
||||
for (int i = 0; i < arr.size(); ++i) {
|
||||
output.append(printVector(arr[i]));
|
||||
if ((arr.size() - 1) > i) {
|
||||
output.append(",\n");
|
||||
}
|
||||
}
|
||||
output.append("\n}");
|
||||
return output;
|
||||
}
|
Reference in New Issue
Block a user