Iloczyn wartości w tablicy - funkcja
Ostatnio zmodyfikowano 2016-12-05 19:07
wokub Temat założony przez niniejszego użytkownika |
Iloczyn wartości w tablicy - funkcja » 2016-12-05 16:44:34 Witam. Mam problem z jedną funkcją. Zadanie miało kilka podpunktów, jednak to funkcja zwracająca iloczyn z wartości liczb w tablicy stanowi dla mnie największy problem. Polecenie to ... Zaimplementuj funkcję przyjmującą tablicę typu int, jej rozmiar jako zmienną int i zwracającą jedną liczbę będącąiloczynem elementów tablicy (można użyć sposobu z sizeof() do wyznaczenia ilości elementów zamiast argumentu). Póki co mam: #include <iostream> #include <stdio.h> #include <windows.h>
using namespace std;
int obliczIloczynTablicy( int tablica[ 6 ], int n ) { return }
int main() { int tablica[ 6 ] = { 1, 2, 3, 4, 5, 6 }; int n = sizeof( tablica ) / sizeof( int ); int iloczynTablicy; iloczynTablicy = obliczIloczynTablicy(); cout << "Iloczyn tablicy jest rowny " << iloczynTablicy << endl; system( "pause" ); cin.get(); return 0; }
I właśnie problemem jest return ... tutaj nie wiem co wpisać oraz obliczIloczynTablicy() <- co mam dopisać w nawiasie. O ile inne funkcje poszły mi jak z płatka, o tyle ta jest póki co nie do przejścia. Byłbym bardzo wdzięczny, gdyby ktoś mi mógł pomóc lub po prostu podpowiedzieć. |
|
Gibas11 |
» 2016-12-05 16:56:08 std::accumulate, std::multipliesOpis w komentarzach, jak twoje IDE wymaga doklejenia system("pause") i std::cin.get() na końcu to programuj w czymś innym. #include <functional> #include <iostream> #include <numeric>
int obliczIloczynTablicy( int tablica[], int n ) { return std::accumulate( tablica, tablica + n, 1, std::multiplies < int >() ); }
int main() { int tablica[] = { 1, 2, 3, 4, 5, 6 }; size_t n = sizeof( tablica ) / sizeof( int ); std::cout << "Iloczyn tablicy jest rowny " << obliczIloczynTablicy( tablica, n ) << std::endl; return 0; }
//edit: Przy okazji inne drobnostki, które poprawiłem: - Nie używaj using namespace std; – robi ci śmietnik w globalnej przestrzeni nazw. - Można pominąć rozmiar tablicy przy definiowaniu jej (kompilator się domyśli) i deklarując jako parametr funkcji (i tak jest tam zmieniana w zwykły wskaźnik). - Zmienna iloczynTablicy była zbędna. |
|
wokub Temat założony przez niniejszego użytkownika |
» 2016-12-05 17:53:59 Dzięki wielkie za podpowiedź. Teraz wiem w którym kierunku iść. Co prawda, jest to ciut wykraczające poza wiedzę, którą zdobyłem do tej pory, no ale jakoś idzie.
Co do tego przykładu. Mam jeden problem. CodeBlocks daje błąd. ,, 'accumulate' is not a member of 'std' " |
|
Monika90 |
» 2016-12-05 18:27:47 std::accumulate i std::multiplies wymagają #include <numeric> #include <functional>
|
|
wokub Temat założony przez niniejszego użytkownika |
» 2016-12-05 18:34:13 Dzięki wielkie. Domyślałem się, że problem leży w elementach include (bibliotekach?), jednak znam ich tak mało, że nigdy bym się nie domyślił konkretnej. |
|
Gibas11 |
» 2016-12-05 18:35:27 @Monika90: Racja, dziwnie mi się zaznaczyło kod albo kompilator zapewnił mi jakieś niestandardowe ficzery. Poprawione. |
|
Elaine |
» 2016-12-05 19:07:32 std::multiplies < int >() |
Wystarczy std::multiplies<>(). |
|
« 1 » |