Witam. Jestem Mateusz i dopiero uczę się programować. Zacząłem od C++ i mi to jakoś idzie. Niestety, aktualnie dotarłem do punktu, w którym nie wiem co zrobić. Mam zadanie, i jest ono dla mnie nie od ruszenia.
"Stwórz funkcję, która zwróci najbardziej zbliżoną liczbę do podanej z tablicy wypełnionej elementami wylosowanymi z przedziału od 0 do 100."
Byłbym bardzo wdzięczny za kod z objaśnieniami
Z góry dziękuję za wszelką pomoc i pozdrawiam
P.S.
Jeżeli jest możliwe to prosiłbym bez użycia "string". Aktualnie nie wolno nam jej używać
[C++] Znajdź najbliższą wartość w tablicy
[C++] Znajdź najbliższą wartość w tablicy
Ostatnio zmieniony 27 lis 2016, o 15:54 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C++] Znajdź najbliższą wartość w tablicy
A po co tu string niby?
Kod: Zaznacz cały
#include <iostream>
#include <climits>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
int main(void)
{
srand(time(NULL));
double x;
size_t index;
double diff;
cout << "Podaj liczbe: " << endl;
cin >> x;
const size_t SIZE = 100;
const unsigned int MAX = 100;
double tab[SIZE];
tab[0] = static_cast<double> (rand() / (float)RAND_MAX) * MAX;
diff = abs(x - tab[0]);
index = 0;
for(size_t i = 1; i < SIZE; ++i)
{
tab[i] = static_cast<double> (rand() / (double)RAND_MAX) * MAX;
if(abs(x - tab[i]) < diff)
{
diff = abs(x - tab[i]);
index = i;
}
}
cout << "Twoja liczba: " << x << endl << "Najblizsza liczba w tablicy: "
<< tab[index] << endl << "Indeks: " << index << endl << "Roznica: " << diff << endl;
return 0;
}
Ostatnio zmieniony 27 lis 2016, o 02:37 przez kalwi, łącznie zmieniany 2 razy.
[C++] Znajdź najbliższą wartość w tablicy
Dzięki, ale mam prośbę. Mógłbyś wytłumaczyć, za co odpowiadają zmienna diff, komenda abs oraz static_cast?
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C++] Znajdź najbliższą wartość w tablicy
diff łatwo się domyślić, chociażby nazwa po angielsku już coś mówi (a jak nadal nie widzisz - to spójrz na couta na końcu)
abs - absolute value
static_cast - rzutowanie na inny typ zmiennych (aczkolwiek powinno tam być double, nie float, mój błąd)
abs - absolute value
static_cast - rzutowanie na inny typ zmiennych (aczkolwiek powinno tam być double, nie float, mój błąd)