Kezdőoldal » Számítástechnika » Programozás » Hogy állapítsam meg hogy a...

Hogy állapítsam meg hogy a szám páros, vagy páratlan? (c-ben)

Figyelt kérdés

Egy programot készítem.A lényege, ha páros az user által beírt szám kivon egyet.Ha páratlan hozzáad 1-et.

A problémám hogy nem tudom hogyan kell megkülönböztetni a páratlan és páros számokat.

Ezt műveltem eddig :


#include <stdio.h>

#include <stdlib.h>

int main() {

int a ;

printf("adj meg 1 szamot");

scanf("%d", &a);

if (a% 2);

{

printf("Az eredmeny %d \n.",a-1);

}

if(a% 1);

{

printf("Az eredmeny %d.",a+1);

}

system("pause");

return 0;



}


} de annyit csinál a program hogy a beírt számhoz hozzáad, egyet leírja az eredményt majd kivon egyet és azt is leírja. tudnátok segíteni ?

[link]


2014. máj. 31. 00:05
1 2
 11/16 A kérdező kommentje:
Értem akkor if nélkül kipróbálom.
2014. máj. 31. 12:35
 12/16 A kérdező kommentje:
De ha nincs if akkor az else sem jó
2014. máj. 31. 12:59
 13/16 anonim ***** válasza:

A #1-ben írt kódot így kell használni:

//...

printf("adj meg 1 szamot");

scanf("%d", &a);

printf("Az eredmeny %d.", a + a%2*2 - 1);

//...

2014. máj. 31. 13:22
Hasznos számodra ez a válasz?
 14/16 anonim ***** válasza:
49%

%, azaz modulus számítás elég lassú művelet. Ha páros számokról van szó én ajánlom az 1-el való bináris és-elést, ami igazzal tér vissza, ha a szám páratlan és sokkal gyorsabb, kevésbé memória igényes művelet :)


if (a & 1)

{

/*a is odd*/

}

else

{

/*a is even*/

}


Ad2:

Ha egy elágazást kell csinálni, ami két állapotú érdemes az if_else -et használni a kettős if helyett, mert 1: ez is gyorsítja a programot, 2: a feltétel vagy igaz, vagy nem, így olvashatóbb is a kód. Persze van, ahol a feltételnek több állapota is van, olyankor tényleg használható a több egymás utáni if, csak akkor vigyázni kell, hogy a feltétel maga ne változhasson meg ellenőrzések kötött, ha azt az ellenőrzés nem követeli meg.

2014. jún. 1. 22:24
Hasznos számodra ez a válasz?
 15/16 iostream ***** válasza:

1. Ezt bőven kioptimalizálja a fordító, ugyanaz az assembly lesz belőle. Nem ezen érdemes spórolni, viszont az elvet sokkal szebben jelöli, hogy hogy vizsgálunk oszthatóságot. Olvashatóbb program.


2. A & nem igazságértékkel "tér vissza" (igazából nem tér vissza semmivel, mert nem függvény, legalábbis intek között), hanem számmal.

2014. jún. 1. 22:39
Hasznos számodra ez a válasz?
 16/16 anonim ***** válasza:
Iosztrí: Aquilla non captat muscas
2014. jún. 2. 20:03
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!