Jump to content

Dev C++ tablice


PolaczeK

Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...