Nie liczy poprawnie wartości

Nie liczy poprawnie wartości
  • Rejestracja: dni
  • Ostatnio: dni
0

Kod

Kopiuj
#include <iostream>

using namespace std;

int uczniowie, cukierki, x, y;

int main()
{
    cout << "Ilu uczniow jest w Twojej klasie Jasiu: ";
    cin >> uczniowie;
    cout << "Ile cukierkow kupila mama:";
    cin >> cukierki;

    x = cukierki/(uczniowie-1);
    cout << "Ilosc cukierkow dla ucznia:" << x << endl;

    y = cukierki-x*(uczniowie-1);
    cout << "Cukierki dla Jasia:" << y;

    return 0;
}

Mógłby ktoś bardziej kumaty to zobaczyć i stwierdzić czemu nie zlicza właściwej wartości?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

Nie używaj zmiennych globalnych.
Powiedz jakie jest zadanie.

  • Rejestracja: dni
  • Ostatnio: dni
0

Robię zadanie z kursu p. Mirosława (ostatnie minuty). Program ma zliczać liczyć ile cukierków jest dla każdego z uczniów i ile z tego co zostanie dla Jasia. Na podstawie wprowadzonych wartości w powyższym kursie działa poprawnie, ale jak wpiszę inne to już jest błąd.

EL
  • Rejestracja: dni
  • Ostatnio: dni
0

Przejrzałem filmik i skompilowałem Twój kod. Otrzymujesz takie same wyniki jak autor filmu więc nie bardzo rozumiem o co chodzi?

  • Rejestracja: dni
  • Ostatnio: dni
0

Jak pisałem. Działa prawidłowo tak jak powinien na wartościach wpisanych w kursie, ale już przy innych dzieje się coś nie tak.

kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
0
  1. program liczy dobrze, co najwyżej inaczej niż chciałeś, by liczył.
  2. Opisz, jak chcesz zeby policzył, to podpowiedzą Tobie na co zwrócic uwagę.
PrzemolPrzemol
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 225
0

Trochę dziwnie liczy

Wpisałem 30 uczniów w klasie i 50 cukierków. Wynik to 1 dla ucznia i 21 dla Jasia ;)

Cornellia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
5

Ja bym w sumie ostatnią operacje na modulo zamieniła, ale jak kto woli :P

Blue_Carpet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 132
0

Wszystko gra i burczy :P Moze po prostu nie uwzględniłeś, że Jaś jest jednym z uczniów tej klasy i też dostaje cukierki jako uczeń i oddzielnie mu jeszcze zostają lub nie ;).

Endrju
  • Rejestracja: dni
  • Ostatnio: dni
8
Cornellia napisał(a):

Ja bym w sumie ostatnią operacje na modulo zamieniła, ale jak kto woli :P

Modulo będzie wolniejsze. - _13th_Dragon wczoraj, 21:44

Jak zwykle to samo.

Mówienie "xyz będzie wolniejsze/szybsze" bez sprawdzenia jest nierozsądne. Na x86 modulo będzie szybsze. Dlaczego? Bo instrukcja idiv robi obie rzeczy na raz - dzielenie i modulo. Kompilator nie jest głupi i wykorzystuje obydwa te wyniki.

Kiedy doda się "super sprytną optymalizację" polegającą na zamianie modulo na mnożenie z odejmowaniem, po idiv trzeba jeszcze wykonać te "sprytne dodatki". To z pewnością niczego nie przyśpiesza.

To już po raz któryś pokazuje, że zazwyczaj próba bycia mądrzejszym od kompilatora jest pozbawiona sensu. Kod ma być przede wszystkim czytelny i jasny (pokazywać intencję).

(ASM - http://goo.gl/2xtiA8)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.