From fcf38e62e8160f2c9901bdfd33760afed28beb8d Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 22 Feb 2026 19:18:46 +0200 Subject: feat(Week01): Add solutions --- Week01/Exercise03/main.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Week01/Exercise03/main.cpp (limited to 'Week01/Exercise03/main.cpp') diff --git a/Week01/Exercise03/main.cpp b/Week01/Exercise03/main.cpp new file mode 100644 index 0000000..beea1f5 --- /dev/null +++ b/Week01/Exercise03/main.cpp @@ -0,0 +1,40 @@ +#include +#include "ioHelpers.h" +#include "stringHelpers.h" + +int main() { + // Нямаме ограничение на броя студенти, затова просто ще сложим максимума + // да е най-голямата стойност за 32-битов signed integer: 2^31 - 1 + // По-коректно е да се ползват специални константи, които пазят максималната + // стойност на отделните типове данни, защото на стар компютър, int може да + // не е 32 бита. + unsigned numStudents = readInteger("Number of students: ", 0, 2147483647); + + double* grades = new double[numStudents]; + char** names = new char*[numStudents]; + + for (unsigned i = 0; i < numStudents; ++i) { + char* firstName = readString("First name: "); + char* lastName = readString("Last name: "); + + names[i] = concatStrings(firstName, lastName, " "); + + deleteString(firstName); + deleteString(lastName); + + double grade = readDouble("Grade: ", 2.0, 6.0); + + grades[i] = grade; + } + + for (unsigned i = 0; i < numStudents; ++i) { + std::cout << names[i] << " has grade " << grades[i] << std::endl; + } + + delete[] grades; + for (unsigned i = 0; i < numStudents; ++i) + deleteString(names[i]); + delete[] names; + + return 0; +} -- cgit v1.3.1-23-gd82d