From 5ce214686e668bf185222b518b78d7f47a20b4fd Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 7 Dec 2025 13:44:16 +0200 Subject: feat(Week10): Add solutions --- Week10/Exercise09.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Week10/Exercise09.cpp (limited to 'Week10/Exercise09.cpp') diff --git a/Week10/Exercise09.cpp b/Week10/Exercise09.cpp new file mode 100644 index 0000000..4a81925 --- /dev/null +++ b/Week10/Exercise09.cpp @@ -0,0 +1,63 @@ +#include + +unsigned int* inputArray(unsigned int size) { + unsigned int* arr = new unsigned int[size]; + for (unsigned int i = 0; i < size; i++) + std::cin >> arr[i]; + return arr; +} + +void resizeArrayUINTPP(unsigned int**& arr, unsigned int size) { + unsigned int** newArr = new unsigned int*[size * 2]; + for (unsigned int i = 0; i < size; i++) + newArr[i] = arr[i]; + + delete[] arr; + arr = newArr; +} + +void resizeArrayUINTP(unsigned int*& arr, unsigned int size) { + unsigned int* newArr = new unsigned int[size * 2]; + for (unsigned int i = 0; i < size; i++) + newArr[i] = arr[i]; + + delete[] arr; + arr = newArr; +} + +int main() { + unsigned int jaggedCount = 0, jaggedSize = 4, mostColumns = 0; + unsigned int** jagged = new unsigned int*[jaggedSize], *rowSizes = new unsigned int[jaggedSize]; + + unsigned int size; + std::cin >> size; + while (size > 0) { + rowSizes[jaggedCount] = size; + jagged[jaggedCount++] = inputArray(size); + + if (size > mostColumns) + mostColumns = size; + + if (jaggedCount >= jaggedSize) { + resizeArrayUINTP(rowSizes, jaggedSize); + resizeArrayUINTPP(jagged, jaggedSize); + jaggedSize *= 2; + } + + std::cin >> size; + } + + for (unsigned int col = mostColumns; col > 0; col--) { + for (unsigned int row = 0; row < jaggedCount; row++) + if (col - 1 < rowSizes[row]) + std::cout << jagged[row][col - 1] << ' '; + std::cout << std::endl; + } + + for (unsigned int i = 0; i < jaggedSize; i++) + delete[] jagged[i]; + delete[] jagged; + delete[] rowSizes; + + return 0; +} -- cgit v1.3.1-23-gd82d