Witam,
chciałabym prosić o pomoc. Mam takie oto zadanie:
"Napisz w C program, który czyta kwotę podaną w postaci całkowitej liczby
złoty i całkowitej liczby groszy a następnie drukuje w jaki sposób wypłacić ją jak
najmniejszą liczbą banknotów i monet."
Napisany przeze mnie program wygląda tak:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int N[8] = { 200, 100, 50, 20, 10, 5, 2, 1 };
int G[6] = { 50, 20, 10, 5, 2, 1 };
int r, p, i;
int g, f, j;
printf("Podaj liczbę złotych: ");
scanf("%d", &r);
printf("\n");
printf("Podaj liczbę groszy: ");
scanf("%d", &g);
i = 0;
j = 0;
while (r > 0)
{
if (r >= N[i])
{
p = r / N[i];
r = r - (N[i] * p);
printf("%2d zł x %d\n", N[i], p);
}
i = i + 1;
}
while (g > 0)
{
if (g >= G[j])
{
f = g / G[j];
f = f - (G[j] * f);
printf("%2d gr x %d\n", G[j], f);
}
j = j + 1;
}
return 0;
}
Po kompilacji i uruchomieniu programu wyskakuje mi taki oto błąd:
"Błąd w obliczeniach zmiennoprzecinkowych (zrzut pamięci)"
Szukałam tego w google, ale nie mam pojęcia, o co może chodzić.
EDIT: Liczbę złotych rozkłada normalnie, wariuje dopiero przy groszach.