Jeżeli ktoś wie jak temu zaradzić to prosze o pomc bo ja nie mam pojęcia co tu jest źle:
Kod: Zaznacz cały
using namespace std;
/* program ma ograniczenie liczbowe. można podać liczbe z zakresu od 0 do (2^22)-1 (czyli 4194303) */
int main()
{
cout << "Projekt "DEC to BIN"
";
cout << "Program koduje liczbe dziesientna na liczbe binarna.
";
cout << "====================================================
";
int calkow[65];
int ulamkow[10];
int *wskc = &calkow[0];
int *wsku = &ulamkow[0];
double xdec; // liczba podana przez urzytkownika
double pp; // tu będą zapisana część ułamkowa liczby xdec
int c; // tu będą zapisana całkowita części liczby xdec
cout << "Podaj liczbe: ";
cin >> xdec;
cout << endl;
xdec *= 1024; // pomnożyłem przez 2^10=1024
c = (int)xdec;
pp = xdec - (double)c;
// eksperymentalny fragment kodu -----------------------
if (pp > 0) {
if (pp >= 0.5) {c += 1;};
}
int icwsb_c = 0; // ilość cyfr w systemie bin - część całkowita
double temp;
int przecinek = 0;
do {
temp = xdec / 2;
c = (int)temp; pp = temp - (double)c;
if (pp >= 0.5)
{
xdec=(double)c;
cout << "1";
if (przecinek <= 10) {*wsku = 1; wsku++ ;}
else {*wskc = 1; ++wskc ;}
}
else {
xdec=(double)c;
cout << "0";
if (przecinek <= 10) {*wsku = 0; wsku++ ;}
else {*wskc = 0; ++wskc ;}
}
przecinek += 1; if (przecinek == 10) {cout << ",";}
icwsb_c ++;
}
while (icwsb_c != 65);
//------------------------------------------------------
cout << "
";
// -- tu jest wypisywana część calkowita liczby
cout << calkow[0] << " " << calkow[1] << " " << calkow[2] << " " << calkow[3]<< endl;
return 0;
}