Błąd w obliczeniach zmiennoprzecinkowych

0

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.

0
  1. Uruchom to pod debugerem, nikt tego za ciebie nie zrobi.
  2. Zgaduje że warunek końca pęlti nie jest spełniony poprawnie i wyłazisz indeksami poza zakres tablicy gdzie trafia się 0 i dzielisz przez zero.

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