Skocz do zawartości

Dev C++ tablice


PolaczeK

Polecane posty

Witam!

Mam takie zadanie:

Napisz funkcję, która co drugi element tablicy 6 elementowej zastąpi połową wartości elementu tablicy go poprzedzającego. Wyświetl tę tablicę.

 

To co udało mi się wymyślić wygląda tak:

 

#include <cstdio>

#include <math.h>

 

using namespace std;

 

int main ()

{

int wielkosc_tab=6;

int tablica [wielkosc_tab];

 

for(int i=0;i<wielkosc_tab;i++)

{

cout<<"Podaj wartosc "<<i+1<<" elementu tablicy: ";

cin>>tablica;

}

for(int i=0;i<wielkosc_tab;i++)

{

tablica[1]=tablica[0]/2;

tablica[3]=tablica[2]/2;

tablica[5]=tablica[4]/2;

}

cout<<"Wartosc elementu pierwszego wynosi: "<<tablica[0]<<endl;

cout<<"Wartosc elementu drugiego wynosi: "<<tablica[1]<<endl;

cout<<"Wartosc elementu trzeciego wynosi: "<<tablica[2]<<endl;

cout<<"Wartosc elementu czwartego wynosi: "<<tablica[3]<<endl;

cout<<"Wartosc elementu piatego wynosi: "<<tablica[4]<<endl;

cout<<"Wartosc elementu szostego wynosi: "<<tablica[5]<<endl;

 

cin.ignore();

getchar();

return 0;

}

 

Problem znajduje się w tym, że nie wiem gdzie jest błąd, który powoduje, że podczas wypisywania rozwiązania wypisuje mi tylko liczby całkowite, np. 9/2=4 a chciałbym żeby wynik był podawany jako liczby rzeczywiste.

Z góry dziękuję za odpowiedź!

Link do komentarza
Udostępnij na innych stronach

1) jeśli chcesz mieć liczby niecałkowite, to musisz uzyć takiego typu (przybliżający zmienne rzeczywiste, aczkolwiek nie zawsze dokładnie to typy zmiennoprzecinkowe, w c++ znane jako float double, a czasmi long double) - kilka uwag o typie http://kaczus.ppa.pl/art/liczbyzmiennoprzecinkowe,19.html

2) jeśli chce się uzyskać wynik operacji zmiennoprzecinkowy, to jeden z argumentów musi być takim typem, czyli nie 9/2, a 9/2.0 aczkolwiek lepiej jest doprowadzić do sytuacji, w której wykonamy mnożenie zamiast dzielenia, które ze swojej natury jest szybsze, czyli 9*0.5 w tym wypadku.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

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

×
×
  • Utwórz nowe...