dzielenie z reszta dlaczego blad?

0

Poniższy program ma obliczyć największy wspólny dzielnik dwóch liczb. <ort>kożysta </ort>z algorytmu euklidesa. Dla pewnyw wartości działa (8 2) a dla innych już nie (12 9). Dlaczego? Czy ma to coś wspólnego z wyciaganiem reszty (%)?

#include <stdio.h>   
#include <stdlib.h> 

int main()
{
 int n;
 scanf ("%d", &n);//Program ma wykonać n pentli
 int i = 0;
 int wynik[n];//wyniki beda zapisywane do tej tablicy
 for(; i < n; i++)
 {
  int a;
  int b;
  scanf ("%d", &a);//pobranie wartosci zmiennych
  scanf ("%d", &b);
  for(; a % b != 0; )
  {
   if (a > b){a = a % b;}//wybieranie reszty z dzielenia i przypisanie jej jako 
   if (a <= b){b = b % a;}//wartosc wiekszej liczby
  }
  if (a >= b){if (b > 0){ wynik[i] = b;}}//wynikiem jest mniejsza liczba wieksza od 0
  if (a < b){if (a > 0){wynik[i] = a;}}
 }
 for(i = 0; i < n; i++)//wypisanie wynikow
 {
  printf ("%d", wynik [i],"\n");
 }
  getchar();
  getchar();
  return 0;
}
0

No w sumie to tak, przez %... Jak się trzy razy liczy... To chyba jest "twój algorytm", a nie Euklidesa... No bo jak tu obliczyć 3 % 0 (ZERO!) ???
I to też jest całkiem CoooL:

printf ("%d", wynik [i],"\n");

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