diff options
| author | Syndamia <kamen@syndamia.com> | 2024-02-28 10:25:19 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-02-28 10:25:19 +0200 |
| commit | bb132c2191dc7ad62c74c40d5e39cf673d621998 (patch) | |
| tree | ba1b4adc653fcc3a938bd842bf3b51ccda8b1cbc | |
| parent | 65010da9ed11920b57e79ff6b197c0c64ceeba69 (diff) | |
| download | oop-2023-solutions-bb132c2191dc7ad62c74c40d5e39cf673d621998.tar oop-2023-solutions-bb132c2191dc7ad62c74c40d5e39cf673d621998.tar.gz oop-2023-solutions-bb132c2191dc7ad62c74c40d5e39cf673d621998.zip | |
[w1/ex3] Added solution
| -rw-r--r-- | week01/Exercise3.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
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 <iostream> + +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; +} |
