• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z zadaniem c++, argumenty funkcji

VPS Starter Arubacloud
0 głosów
1,486 wizyt
pytanie zadane 1 listopada 2017 w C i C++ przez Dawidson957 Początkujący (350 p.)
Cześć, otóż mam podane zadanie:

Napisz funkcję, która dostaje jako argumenty nieujemne liczby całkowite n i m, z których co najmniej jedna jest różna od zera i zwraca jako wartość n^m. Jeżeli drugi z argumentów nie zostanie podany, funkcja powinna zwrócić wartość n^2.

I pojawiają się 2 pytania..

Jak sprawić żeby funkcja która ma w deklaracji właściwie to dwa argumenty, przyjęła tylko jeden? Póki co przy kompilacji funkcji z jednym argumentem wywala błąd (w sumie się nie dziwię).

A jeśli uda się rozwiązać pierwszy problem to jak później sprawdzić czy udało się wczytać argument? Myślałem tutaj o funkcji cin.good() lub cin.fail(), chyba że macie inne propozycje ;)

Jeśli macie jakiś link do rozwiązania tego zadania to byłbym wdzięczny, widocznie nie umiem szukać w google :D

4 odpowiedzi

0 głosów
odpowiedź 1 listopada 2017 przez Michał Muzyka Pasjonat (24,080 p.)
wybrane 1 listopada 2017 przez Dawidson957
 
Najlepsza

wydaje mi się że to będzie coś takiego:

int power(int n, int m=2){
}

jeśli w wywołaniu nie będzie podane m, to przyjmie domyślną wartość 2

i w sensie o co chodzi z tym wczytaniem argumentu?

 

komentarz 1 listopada 2017 przez JAKUBW Nałogowiec (33,470 p.)

Generalnie to jeszcze unsigned trzeba dodać:
 

unsigned int power(unsigned int n, unsigned int m=2) {

    return static_cast<unsigned int>(std::pow(static_cast<double>(n), m));

}



oraz #include <cmath>

komentarz 1 listopada 2017 przez Dawidson957 Początkujący (350 p.)
Na śmierć zapomniałem o czymś takim jak argument domyślny haha.

Dzięki za pomoc!
0 głosów
odpowiedź 1 listopada 2017 przez Aisekai Nałogowiec (42,190 p.)
1. Przeciazyc funkcję. Można jeszcze zrobić tak jak w/w sposób.

2. Nie rozumiem drugiego pytania. W treści zadania masz założenia których nie musisz sprawdzać.
0 głosów
odpowiedź 1 listopada 2017 przez Apsor Użytkownik (610 p.)

W pliku h dodajesz np :

int power(int n, int m=2);

i później w pliku cpp:

int power(int n, int m){
}

i normalnie używasz argumentów n i m - jak m ktoś nie poda to będzie 2.

0 głosów
odpowiedź 1 listopada 2017 przez Bondrusiek Maniak (61,370 p.)

Witam,

możesz użyć argumentów domyślnych we funkji.

int power(int a, int b = 2)

a strumień możesz sprawdzić za pomocą metody fail()

    int a;
    std::cin >> a;
    if(std::cin.fail())
    {
        std::cout << "Podane nieprawidlowe dane" << std::endl;
    }

Tu masz jeszcze inne metody co do istream

http://www.cplusplus.com/reference/istream/istream/

Podobne pytania

+1 głos
3 odpowiedzi 1,104 wizyt
pytanie zadane 6 lutego 2017 w C i C++ przez cubus Początkujący (430 p.)
0 głosów
2 odpowiedzi 396 wizyt
0 głosów
2 odpowiedzi 118 wizyt
pytanie zadane 4 września 2017 w C i C++ przez student97 Nowicjusz (210 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...