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!
#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;
}