Dlaczego przy pisaniu perogramu wyświetla mi się "Błąd w obliczeniach zmiennoprzecinkowych (zrzut pamięci)"?

0

Napisałam kod w notatniku na linuxie i kompiluję w terminalu
Oto program:

#include <stdio.h>

int NWD(int g_First, int g_Second){
	int g_Third;
	
	while(g_Second != 0){
		g_Third = g_First % g_Second;
		g_First = g_Second;
		g_Second = g_Third;
	}
	return g_First;
}		

int main(){
	int g_First,
		g_Second,
		g_Result;
		
	printf("Podaj pierwsza liczbe:\n");
	scanf("%d", &g_First);
	
	printf("\nPodaj druga liczbe:\n");
	scanf("%d", &g_Second);
	
	g_Result = NWD(g_First, g_Second);
	printf("\nNWD: %d", g_Result);
	
	return 0;
}
0

Dla jakich danych masz problem?

0

Ogólnie program się kompiluje, ale po wpisaniu dwóch liczb (ze scanf) wyskakuje ten komunikat. Napidalam ten program jak powyżej i skompilowalam w terminalu wpisując gcc nwd.c i następnie . /a.out

0

A ten algorytm zadziała w C?

1

Przecież Piszesz w C, tak będzie czytelniej, imo:

#include <stdio.h>

void swap(int *a, int *b) {
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

int gcd(int a, int b) {
	while (b > 0) {
		a = a % b;
		swap(&a, &b);
	}
	return a;
}

int main () {
	printf("%d\n", gcd(12, 8)); // -> 4
	printf("%d\n", gcd(25, 15)); // -> 5
	return 0;
}
1

Mam taki głupie pytanie: Gdzie w tym kodzie masz liczby zmiennoprzecinkowe?
Nigdzie, więc brakuje jakiejś istotnej informacji dla tego problemu.

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