Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Firestone

Problem z zamianą na system ósemkowy

Polecane posty

Witam

Piszę program na zadanie domowe i natknąłem się na dziwny problem.

Program nie chce zamienić liczby z systemu dziesiętnego na ósemkowy.

Kod:


#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <ctime>
#include <fstream>
#include <cstdlib>
#include <iomanip>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

//ROZMIAR TABLICY
int rozmiar;
cout<<"Podaj rozmiar tablicy"<<endl;
cin>>rozmiar;
if(rozmiar<=0||rozmiar>100)
{
fputs("Blad, rozmiar tablicy musi byc liczba z przedzialu od 1 do 100!",stderr);
_getch();
exit (0);
}

double *tab=new double[rozmiar];

//GENEROWANIE LICZB
srand(time(NULL));
cout<<"Wygenerowalem tablice liczb: \n"<<endl;
for(int i=0; i<rozmiar; i++)
{
*(tab + i)=((double)rand()/(RAND_MAX)* 200.0 - 100.0);
if(tab[i]>0)
cout<<"+"<<*(tab + i)<<endl;
else
cout<<*(tab + i)<<endl;
}


//KONWERSJA NA CAŁKOWITE
cout<<endl<<"Zamiana na calkowite: "<<endl;
for(int h=0; h<rozmiar; h++)
{
tab[h] = (int) (tab[h]);
cout.setf( ios::showpos );
cout << *(tab+h) << endl;
}
//KONWERSJA NA SYSTEM ÓSEMKOWY
cout<<endl<<"Zamiana na osemkowy: "<<endl;
for(int s=0; s<rozmiar;s++)
{
tab[s] = (int) (tab[s]);
cout.setf( ios::oct, ios::basefield );
cout << *(tab+s) << endl;

}



_getch();
return 0;
}

Chodzi o nagłówek "KONWERSJA NA SYSTEM ÓSEMKOWY", obecnie program wypisuje ponownie liczby całkowite w systemie dziesiętnym. Proszę o pomoc wink_prosty.gif

Link do komentarza
Udostępnij na innych stronach

Nawet po


tab[s] = (int) (tab[s]);

dane w tablicy tab są typu double, i nie będą formatowane tak, jak tego oczekujesz.

Możesz zmienić zapis na coś w stylu (przy okazji, po co na zmianę stosujesz zapis [tablicowy] i *(wskaźnikowy)?)


cout << (int)tab[s] << endl;

PS setf wystarczy wywołać raz przed pętlą.

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...