Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Liczenie kasy problem

Ostatnio zmodyfikowano 2011-04-28 23:52
Autor Wiadomość
DVD93
Temat założony przez niniejszego użytkownika
Liczenie kasy problem
» 2011-04-27 12:50:20
Witam piszę algorytm na lekcje który ma sprawdzać ile w danej kwocie jest: 100zł 50zł ... i tak dalej aż do 1 grosza.
Napisałem coś takiego:

C/C++
#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
   
    double kwota = 0;
    double dzielna = 0;
    double wynik = 0;
   
    double wynik1 = 0;
   
    cin >> kwota;
   
    for( int i = 0; i < 13; i++ )
    {
        if( i == 0 )
             dzielna = 100;
       
        if( i == 1 )
             dzielna = 50;
       
        if( i == 2 )
             dzielna = 20;
       
        if( i == 3 )
             dzielna = 10;
       
        if( i == 4 )
             dzielna = 5;
       
        if( i == 5 )
             dzielna = 2;
       
        if( i == 6 )
             dzielna = 1;
       
        if( i == 7 )
             dzielna = 0.5;
       
        if( i == 8 )
             dzielna = 0.2;
       
        if( i == 9 )
             dzielna = 0.1;
       
        if( i == 10 )
             dzielna = 0.05;
       
        if( i == 11 )
             dzielna = 0.02;
       
        if( i == 12 )
             dzielna = 0.01;
       
        if( kwota >= dzielna )
        {
            wynik = kwota / dzielna;
           
            if( wynik >= 1 )
            {
                for( int i = 0; i <= wynik; i++ )
                {
                    wynik1 = i;
                }
            }
           
            cout << wynik1 << endl;
           
            kwota =( wynik - wynik1 ) * dzielna;
        }
       
        else
             cout << "0" << endl;
       
    }
   
    getch();
}

I nie wiem gdzie może być błąd bo liczy dobrze tylko niektóre kwoty , a np. w innych pomija grosze itp.
Jeśli ktoś wie jak to naprawić to bardzo proszę o pomoc ;) i z góry dziękuje.
P-32078
mar3
» 2011-04-27 14:14:29
1)Kod C/C++ wstawiaj w znaczniki
[cpp]...[/cpp]
. Więcej o znacznikach (na tym forum) znajdziesz tutaj: http://cpp0x.pl/kursy/Kurs-STC/169.
2)Czy nie łatwiej zamiast:
C/C++
for( int i = 0; i <= wynik; i++ )
{
    wynik1 = i;
}
napisać
wynik1 = wynik;
?
P-32082
Gabes
» 2011-04-27 14:41:31
masz int zmień na  float .
P-32084
DVD93
Temat założony przez niniejszego użytkownika
» 2011-04-27 15:12:24
No tak ale mi chodzi o to że od kwoty wpisanej użytkownika program odejmie część całkowitą czyli to int i i pozostanie reszta czyli kwota w kolejnym biegu pętli.
P-32087
pekfos
» 2011-04-27 15:23:51
no wstaw kod w [cpp][/cpp]!!
jak kod to taki syf to nikomu nie chce się go czytać. sformatuj go.
P-32088
DVD93
Temat założony przez niniejszego użytkownika
» 2011-04-27 15:47:00
Proszę już sformatowany i nie wiem gdzie Ty tam syf widzisz
P-32089
Gabes
» 2011-04-27 16:21:48
showpoint - wypisuje nawet nieznaczące zera i kropkę dziesiętną

http://cpp0x.pl/kursy/Kurs-C++/Obsluga-strumienia-cout/323

P-32090
DVD93
Temat założony przez niniejszego użytkownika
» 2011-04-28 23:52:58
Problem tego algorytmu tkwił w złym zaokrąglaniu kwoty rozwiązałem go funkcją round z biblioteki math.h lecz niestety teraz grosze mi zaokrągla do 0 ale sądzę ,że dam już sobie z tym rade ;)
Dzięki wielkie wszystkim za pomoc ;)
P-32218
« 1 »
  Strona 1 z 1