Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Perfectly ascending/descending number

[es] :: C/C++ programiranje :: Perfectly ascending/descending number

[ Pregleda: 1744 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

M_CWAL
vvk

Član broj: 332748
Poruke: 3
*.dynamic.telemach.ba.



Profil

icon Perfectly ascending/descending number05.03.2016. u 19:00 - pre 98 meseci
Ćao.
Ovako. Voljela bih ako neko može da mi pomogne sa ovim zadatkom. Ja stvarno ne znam da ga riješim.
Doduše, nedavno sam počela da programiram, pa još ne znam sve cake.

Evo tekst zadatka:

Write a program to prompt the user to enter an integer. The program should then determine whether the digits
in the number are perfectly descending, ascending or none.

examples:

986321 - perfectly descending digits in a number
1579 - perfectly ascending digits in a number
15792 - none

Hvala najiskrenije ko god mi pokuša pomoć. :)
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Perfectly ascending/descending number05.03.2016. u 21:38 - pre 98 meseci
Dokle si stigla? Imaš li neku ideju?
 
Odgovor na temu

M_CWAL
vvk

Član broj: 332748
Poruke: 3
*.dynamic.telemach.ba.



Profil

icon Re: Perfectly ascending/descending number05.03.2016. u 21:54 - pre 98 meseci
Pa ideja mi je bila da prvo prebrojim koliko ima cifara uneseni broj i taj dio mi je dobar, a druga polovica zadatka mi nije tačna.
Nemam ideju kako bih mogla dalje..

Code:

#include <iostream>
using namespace std;
int main () {

    cout << "Enter a number: ";
    int num, br(0);
    cin >> num;

    while(num > 0) {
        num = num / 10;
        br = br + 1;
    }

    cout << "Broj cifara je: " << br << endl;

    int arr[10] = {br};
    for(int i = 0; i < br-1; i++) {
        for(int j = i+1; j < br; j++){

            if(arr[i] < arr[j]) {     // arr[i] < arr[j]  
                cout << "strogo rastuci niz" << endl;
            }
            else if(arr[i] > arr[j]){    //  arr[i] < arr[j]  
                cout << "Strojo opadajuci niz" << endl;
            }
            else {
                cout << "None.";
            }
        }
    }

    return 0;
}


[Ovu poruku je menjao Mihajlo Cvetanović dana 07.03.2016. u 12:48 GMT+1]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Perfectly ascending/descending number07.03.2016. u 12:10 - pre 98 meseci
Ne treba ti dvostruka petlja. U prvoj while petlji samo poredi tekući broj sa prethodnim, i uvedi dve bool promenljive koje kažu da li je u prethodnim iteracijama tekući broj bio manji ili veći od njemu prethodnog. Neka se te dve bool promenljive zovu ascending i descending i pre while petlje su postavljene na false. U prvoj iteraciji ne treba da radiš ništa, i to je specijalan slučaj, jer u prvoj iteraciji još ne postoji "prethodni" broj.

U svakoj iteraciji, ako je trenutni broj veći od prethodnog postavi ascending na true. Ako je trenutni broj manji od prethodnog postavi descending na true. Ništa se ni u kom slučaju ne postavlja na false. Ako se u nekom koraku desi da su obe bool promenljive true onda možeš slobodno da izađeš iz petlje.

Po izlasku iz petlje ako su obe promeljive true onda je to mešani slučaj. U suprotnom je slučaj ono što je jedino true. Nešto mora da bude true ako u nizu cifara postoje bar dve cifre različite.

Ono što mene buni je šta treba napisati recimo za slučaj 111? To zadatkom nije definisano, pa može samo da se nagađa.
 
Odgovor na temu

M_CWAL
vvk

Član broj: 332748
Poruke: 3
*.dynamic.telemach.ba.



Profil

icon Re: Perfectly ascending/descending number07.03.2016. u 21:50 - pre 98 meseci
Hvala ti Mihajlo. Baš si super objasnio sve.
Uradila sam ovaj zadatak kasnije na drugi način, al' i ovaj je isto jako dobar.
Slučaj 111 bi bio "None" - jer i ta opcija je bila ponuđena.
Ascending, descending ili none.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Perfectly ascending/descending number08.03.2016. u 07:30 - pre 98 meseci
Citat:
Mihajlo Cvetanović:
Neka se te dve bool promenljive zovu ascending i descending i pre while petlje su postavljene na false. U prvoj iteraciji ne treba da radiš ništa, i to je specijalan slučaj, jer u prvoj iteraciji još ne postoji "prethodni" broj.

U svakoj iteraciji, ako je trenutni broj veći od prethodnog postavi ascending na true. Ako je trenutni broj manji od prethodnog postavi descending na true.


Ovo neće da radi kako treba, osim ako rezultat false posmatraš i tumačiš obrnuto - kao ispunjen uslov.
Inače, ako hoćeš prirodnije rešenje - treba da te dve promenljive da staviš na true (lažna pretpostavka)
a u petlji da ih setuješ na false (pobiješ pretpostavku) ako prethodnik nije veći/manji od trenutnog.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Perfectly ascending/descending number

[ Pregleda: 1744 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.