Website Summary Files Commits Branches @commit @diff @stats
path: root / Week10 / Exercise09.cpp
diff options
context:
space:
mode:
Commit5ce214686e668bf185222b518b78d7f47a20b4fd (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-12-07 13:44:16 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-12-07 13:44:16 +0200
Filesacd2c1e0f3f0c7aa850878a12a9b674b8be1ccf7 /Week10/Exercise09.cpp
upp-2025-solutions-5ce214686e668bf185222b518b78d7f47a20b4fd.tar
upp-2025-solutions-5ce214686e668bf185222b518b78d7f47a20b4fd.tar.gz
upp-2025-solutions-5ce214686e668bf185222b518b78d7f47a20b4fd.zip
Parent6f894be622e8046f43a70e843cff7bd99c58a3c1 (diff)
feat(Week10): Add solutions
1 files changed, 63 insertions, 0 deletions
-rw-r--r--Week10/Exercise09.cpp63
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 <iostream>
+
+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;
+}