From bb132c2191dc7ad62c74c40d5e39cf673d621998 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 28 Feb 2024 10:25:19 +0200 Subject: [w1/ex3] Added solution --- week01/Exercise3.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 week01/Exercise3.cpp diff --git a/week01/Exercise3.cpp b/week01/Exercise3.cpp new file mode 100644 index 0000000..37ca68b --- /dev/null +++ b/week01/Exercise3.cpp @@ -0,0 +1,58 @@ +#include + +struct Packet { + int time; + int temperature; + int pressure; + int humidity; + int elevation; +}; + +void sortByTime(Packet* data, int N) { + for (int i = 0; i < N-1; i++) { + for (int j = 0; j < N-1 - i; j++) { + if (data[j].time > data[j+1].time) { + Packet temp = data[j]; + data[j] = data[j+1]; + data[j+1] = temp; + } + } + } +} + +int getValue(const Packet& packet, char specifier) { + switch (specifier) { + case 't': return packet.temperature; + case 'p': return packet.pressure; + case 'h': return packet.humidity; + case 'e': return packet.elevation; + } + return 0; +} + +int main() { + int N; + std::cin >> N; + + Packet* data = new Packet[N]; + for (int i = 0; i < N; i++) { + std::cin >> data[i].time + >> data[i].temperature + >> data[i].pressure + >> data[i].humidity + >> data[i].elevation; + } + + char wantedValue; + std::cin >> wantedValue; + + sortByTime(data, N); + std::cout << getValue(data[0], wantedValue); + + for (int i = 1; i < N; i++) { + std::cout << " " << (getValue(data[i], wantedValue) - getValue(data[0], wantedValue)); + } + std::cout << std::endl; + + delete[] data; +} -- cgit v1.2.3