Pereiti prie turinio

Paprasta C++ problema


Rekomenduojami pranešimai

Sveiki turiu tokia problema. Pasirasiau koda

          if(skaicius-16>=0){
		cout << "1 ";
		skaicius=skaicius-16;
	}
	if(skaicius-16<0){
		cout << "0 ";
	}

it man reiktu kad jei skaicius yra pvz 17 kad man tikrintu tik pirmaji if-a, o antra paprasciausiai ignoruotu. Ar yra kazkokia komanda C++? Dekui

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki turiu tokia problema. Pasirasiau koda

          if(skaicius-16>=0){
		cout << "1 ";
		skaicius=skaicius-16;
	}
	if(skaicius-16<0){
		cout << "0 ";
	}

it man reiktu kad jei skaicius yra pvz 17 kad man tikrintu tik pirmaji if-a, o antra paprasciausiai ignoruotu. Ar yra kazkokia komanda C++? Dekui

 

Tai taip ir turi būti..

 

Tiesa, nafik atemi 16 ir žiūri ar mažiau ir daugiau už nuli? Kodėl iškart netiktini ar ne daugiau už 17 ir ar ne mažiau už 17?

Redagavo ModestasV
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gerai prasidejo speliones dedu daugiau kodo

          if(skaicius-32>=0){
		cout << "1 ";
		skaicius=skaicius-32;
	}
	if(skaicius-32<0){
		cout << "0 ";
	}
	//---------------------
	if(skaicius-16>=0){
		cout << "1 ";
		skaicius=skaicius-16;
	}
               if(skaicius-16<0){
		cout << "0 ";
	}

Pabandysiu aprasyti kaip programa turetu veikti. Ivedu skaiciu (pvz 17) pirmame if'e salyga netenkinama nes 17-32<0, bet tenkina antra if'a todel rezultatas 0. Toliau 3asis if'as yra tenkinamas todel i ekrana isveda 1 (BEDA TA KAD MAN JAU NEREIKIA KAD BUTU TIKRINAMAS 4 IF'AS IR NORECIAU KAD JI PRALEISTU t.y KAD NERASYTU 0. Rezultatas turetu buti "0 1".

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gerai prasidejo speliones dedu daugiau kodo

          if(skaicius-32>=0){
		cout << "1 ";
		skaicius=skaicius-32;
	}
	if(skaicius-32<0){
		cout << "0 ";
	}
	//---------------------
	if(skaicius-16>=0){
		cout << "1 ";
		skaicius=skaicius-16;
	}
               if(skaicius-16<0){
		cout << "0 ";
	}

Pabandysiu aprasyti kaip programa turetu veikti. Ivedu skaiciu (pvz 17) pirmame if'e salyga netenkinama nes 17-32<0, bet tenkina antra if'a todel rezultatas 0. Toliau 3asis if'as yra tenkinamas todel i ekrana isveda 1 (BEDA TA KAD MAN JAU NEREIKIA KAD BUTU TIKRINAMAS 4 IF'AS IR NORECIAU KAD JI PRALEISTU t.y KAD NERASYTU 0. Rezultatas turetu buti "0 1".

 

naudok if-else-if konstrukciją:

if(condition) {
 doSomething();
} else if(other_condition) {
 doSomethingElse();
} else if(other_other_condition) { ... } ...

 

Jeigu bus tenkinama pirma sąlyga, į kitą jau nežiūrės, jei tenkinama antra - nežiūrės į trečią. Ko gero tai yra tai, ko tau reikia.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

naudok if-else-if konstrukciją:

if(condition) {
 doSomething();
} else if(other_condition) {
 doSomethingElse();
} else if(other_other_condition) { ... } ...

 

Jeigu bus tenkinama pirma sąlyga, į kitą jau nežiūrės, jei tenkinama antra - nežiūrės į trečią. Ko gero tai yra tai, ko tau reikia.

Labai tau aciu. To ir reikejo :) O del kitu budu tai butu visai idomu paziureti :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Rekursijai čia nelabai matau prasmės. Mus tai mokykloj mokė kažkada "Repeated Division-by-2" metodo, koks yra čia. Dar galima su bitwise operacijom.

 

Galiausiai jei vis tiek nori daryt, kaip darai dabar, tai bent ciklą daryk (nuo didžiausio galimo 2 laipsnio iki mažiausio), nes dabar tuos ifus rašyt užsiknisi (DRY).

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...