problemy z modulo

problemy z modulo
ZP
  • Rejestracja:prawie 8 lat
  • Ostatnio:10 miesięcy
  • Postów:38
0

Hej, otóż kolega poprosił mnie o napisanie programu do Minecraft'a (tak wiem) odnośnie pewnego moda (Magical Crops). Chodzi o przeliczanie esencji tak więc 4 to 1 wyższego poziomu (tieru) tych poziomów jest 5 (inferium, prudentium, intermidium, superium, supremium) . Podaje się odpowiednie dane i na ich podstawie program oblicza potrzebną ilość esencji (jeżeli liczba nie jest podzielna przez 4 zwraca odpowiednia od 3 w dół) .Jeżeli dam mu jako pierwszą wartość 4 drugą 1 a resztę 0 powinno zwracać 2 tymczasem zwraca "6825024 i inferium 2147303424". Możecie mi wyjaśnić co źle zrobiłem? Z góry dzięki wszystkim!

Kopiuj
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main()
{
    cout << "Witaj w liczniku esencji do Moda Magical Crops (Mystical Agriculture)" << endl;
    while (true) {
        int inferium;
        int prudentium;
        int intermidium;
        int superium;
        int supremium;
        char litera;
        int wynik;
        int ilosc;
        int reszta;
        cout << "Ile masz esencji? (po kolei poczynajac od inferium jezeli nie masz wpisz 0)" << endl;
        cin >> inferium >> prudentium >> intermidium >> superium >> supremium;
        cout << "Na jaka i ile esencji chcialbys to zamienic?  ilosc pozniej \n p - prudentium \n i - intermidium \n s - superium \n c - supremium" << endl;
        cin >> litera;
        switch (litera) {
        case 'p':
            if (inferium % 4 == 0) {
                wynik = inferium / 4;
                wynik += prudentium;
            }
            else {
                if (inferium % 4 != 0) {
                    reszta = inferium % 4;
                    wynik = inferium - inferium % 4 + prudentium;
                }
            }
            wynik = ilosc;
            cout << wynik << " i inferium " << reszta << endl;
            break;
        }
    }
    system("pause");
    return 0;
}
edytowany 1x, ostatnio: kq
MarekR22
nie prościej skorzystać z Excela?
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 13 godzin
  • Lokalizacja:Szczecin
3

Jaś dostał 10 jabłek, ile jabłek ma jaś? Milion, bo wcześniej miał 999990 jabłek. Inicjalizuj zmienne.

Kopiuj
wynik = ilosc;

To psuje, bo wyliczony wynik nadpisujesz losową wartością (której odczyt to UB, bo jest niezainicjalizowana).

I tak na przyszłość: http://forum.4programmers.net/Newbie/173798-jak_tytulowac_watki_na_forum http://4programmers.net/Pomoc/Forum_dyskusyjne/Dlaczego_nikt_nie_odpowiada_w_moim_w%C4%85tku tym razem pokolorowałem i sformatowałem kod, ale nie jesteś na forum od dziś.


edytowany 1x, ostatnio: kq

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.