Pytanie o możliwość ominięcia tablicy.
Mam pewne zadanie, i wiem, że można to rozwiązać za pomocą tablic. Chodzę na pewne warsztaty dla początkujących, gdzie dostajemy zadania do robienia i nie mieliśmy tablic, więc na pewno da się rozwiązać to zadanie bez nich.
Oto zadanie:
Zadanie
Jaś na urodziny dostał nową grę. Wspaniała, dynamiczna strzelanka. Jednak mama chłopca była sprytna –
wiedząc, że chłopiec zmarnuje na nią mnóstwo czasu, postanowiła jednocześnie zadbać o jego zdolności
matematyczne. Na początku każdej tury pojawia się kilka ułamków, które Jasio musi porównać. Jest to dość irytująca
sprawa, ponieważ po każdej złej odpowiedzi gra blokuje się na 15 minut. Potrzebna jest mu metoda, by szybko i
bezbłędnie rozwiązać problem – tu właśnie zaczyna się Twoje zadanie.
Wejście
Pierwszy wiersz danych zawiera liczbę całkowitą N z zakresu 1 do 1000 oznaczającą ilość zestawów danych.
Każdy z kolejnych N wierszy zawiera cztery liczby naturalne A, B, C, D z zakresu od 1 do 30000, oddzielone
pojedynczymi odstępami.
Wyjście
Program dla każdej czwórki porównuje między sobą ułamki A/B oraz C/D. Jeśli pierwszy ułamek jest większy,
wtedy program powinien wypisać znak >. Jeśli drugi ułamek jest większy, program powinien wypisać znak <. Jeśli
ułamki są równe, program powinien wypisać znak =.
Przykład
Dla danych wejściowych:
3
1 2 3 6
4 5 6 7
1 2 1 3
poprawnym wynikiem jest:
=
<
>
Chodzi mi o to, że potrafię to zrobić ale nie tak jak trzeba.
#include <iostream>
using namespace std;
int main()
{
int n, a, b, c, d, A, B, C, D;
cin >> n;
for( int i = 1; i <= n; i++ )
{
cin >> a >> b >> c >> d;
A = a * d;
B = b * d;
C = c * b;
D = d * b;
if( A > C ) cout << ">\n";
else if( A < C ) cout << "<\n";
else if( A == C ) cout << "=\n";
}
cin.ignore( 2 );
return 0;
}
Chodzi o to, że program wypisuje wynik po jednym obliczeniu, potem każe wczytać następne dane itd. Jak zrobić, żeby najpierw wczytał wszystko, a dopiero potem wypisał wyniki?