Największy wspólny dzielnik

0

Witam, napisałem program z wykorzystaniem algorytmu Euklidesa, ale mam problem z dosyć błahą sprawą otóż, tak wygląda mój kod:

#include <iostream>

using namespace std;

int
nwd(int a, int b)
{
  while (a != b)
    if (a > b)
      a -= b;
    else
      b -= a;
  return a;
}

int
main()
{
  int t, a, b;
  cin >> t;
  for (int i = 1; i <= t; i++) {
    cin >> a >> b;
  }
  for (j = 1; j <= t; j++) {
  }
  return 0;
}

i tutaj wynik pokazuje mi od razu po wprowadzeniu wartości, macie pomysł jak to zmienić? To znaczy najpierw wprowadzam np 3 pary liczb i dopiero po tym wprowadzeniu pokazują mi się 3 dobre wyniki.

0

http://en.cppreference.com/w/cpp/container/vector
http://en.cppreference.com/w/cpp/utility/pair
Najpierw pobranie danych, a potem dla każdej pary wypisać wynik (2x for).

Dodatkowo kod w znaczniki oraz nie zapominaj o formatowaniu kodu, bo tego się nie da czytać, możesz np. użyć: http://format.krzaq.cc/

0

Dlaczego nikt nie odpowiada w moim wątku? punkty trzeci i czwarty

0
Styrczu napisał(a):

Witam, napisałem program z wykorzystaniem algorytmu Euklidesa,

Gdzie masz ten algorytm? Ja go nie widzę!
Może trzeba było zacząć od wujka google i popatrzeć do wiki: https://pl.wikipedia.org/wiki/Algorytm_Euklidesa#Funkcja_wyliczaj.C4.85ca_NWD_w_C.2FC.2B.2B

Na datek coś nam bajki wciskasz, bo ten kod nic nie oblicza, ani nic nie wypisuje.

0

Wprowadzaj po spacjach i na koniec nowa linijka albo zmień sposób obsługi bufora stdin ( man setvbuf ).

Pzdr.

0
int main()
{
    int a, b;
    while (cin >> a >> b)
    {
        cout << nwd(a, b) << endl;
    }
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1