» »

Program za absolutno vrednost

Program za absolutno vrednost

Matic1911 ::

Zdravo!

Napisat morem program ki mi bo omogočal, da uporabnik vnese določeno število, programo pa more nato izpisati absolutno vrednost števila.

Moja koda zgleda takole:

#include <iostream>
#include <cmath>

using namespace std;

float abs(float x) {

    if(x > 0) {
        return (-x);
    }

    else {
        return (x);
    }
}

int main() {

    int x;
    cout << "Vnesite poljubno število:" << endl;
    cin >> x;

    cout << "Absolutna vrednost vnešenega števila je: " << abs(x) << endl;
}


Nevem kaj je narobe pri tej funkciji. Napisana je točno tako kot je v teoriji prav za absolutne vrednosti.

Prosim za pomoč.

LP

Meizu ::

Če ne drugega imaš v pogoju if napačno postavljeno enačbo.

Tvoj pogoj vedno vrne negativno število. Absolutna vrednost pa pomeni vedno nenegativno število.

if(x<0) 


to bo bolj pravilno.

Matic1911 ::

Joj komaj zdaj sem opazil da sem malo pomešal vse skupaj. Pogoj if je bil narobe postavljen ter prvi return ;((

Hvala za odgovor.

Sedaj pa me še nekaj muči.

Koda:

#include <iostream>

using namespace std;

bool sodo(int x) {

    if(x % 2 == 0) {
        cout << "Število je sodo." << endl;
    }

    else {
        cout << "Število je liho." << endl;
    }
}

int main() {

    int x;
    cout << "Vnesite poljubno število:" << endl;
    cin >> x;

    cout << sodo(x) << endl;

return 0;

}


Ok vem, da je zelo enostavna koda. Samo zakaj mi na koncu v konzoli vrže ven število 160? Od kod se to število sploh pojavi če
pa ga nisem nikjer napisal. Res nevem kaj bi lahko bilo narobe sej je en zelo enostaven pogoj v celotnem programu. Program mi prav zračuna če je število sodo ali liho samo nevem od koder se pojavi tista 160. Res nevem več kaj naj naredim da bo nehalo prikazovat tisto 160.

kloko ::

Funkcijo sodo imaš definirano kot tip bool. V zadnjem cout v main se izpiše vrednost, ki jo vrača sodo. Ker v sami funkciji nič ne vračaš, se izpiše "karneki".

L.p., Kloko

golobich ::

tko kot je reku kloko. Definiraj funkcijo kot void in jo potem kliči kot sodo (x) pa bo delalo ;)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Rekurzija

Oddelek: Programiranje
82299 (1759) lebdim
»

[C++] Metode

Oddelek: Programiranje
51457 (1289) failcoder
»

C++ spiralno pisanje v array

Oddelek: Programiranje
101382 (1133) ghost
»

c++ abs value

Oddelek: Programiranje
51998 (1795) Gundolf
»

Programerska naloga. A ne vem no.

Oddelek: Programiranje
61163 (963) noraguta

Več podobnih tem