Kezdőoldal » Számítástechnika » Programozás » C nyelven, if. Else struktúráv...

C nyelven, if. Else struktúrával felírt faktoriális számításban tudnátok egy kicsit segíteni? Továbbá, switch. Case-zel ezt hogyan lehet megcsinálni?

Figyelt kérdés

Ez így működik:


int main(void) {

int N;

int Fakt=1;


printf("N="); scanf("%d",&N);


if(N!=0) {

int k=1;

for(k=1;k<=N;k++) {

Fakt = Fakt*k;

}

printf("%d! erteke %d",N,Fakt);

}


else {

printf("%d! erteke 1\n",N);

}


return 0;

}


Viszont először úgy próbáltam, hogy vizsgálom N=0 feltételt, vagyis if(N=0) --> Fakt=1, és else --> Fakt = k*Fakt. Viszont így nem működött. A programkód:


int main(void) {

int N;

int Fakt=1;


printf("N="); scanf("%d",&N);


if(N=0) {

printf("%d! erteke 1\n",N);

}


else {

int k=1;

for(k=1;k<=N;k++) {

Fakt = Fakt*k;

}

printf("%d! erteke %d",N,Fakt);

}


return 0;

}


Erre minden nemnegatív szám esetén azt dobja ki, hogy "A 0! erteke 1." Mi lehet itt a baj?


Köszönöm a segítséget!


2015. jan. 18. 15:20
 1/4 anonim ***** válasza:
100%

if(N==0)-t írj.


Az = ugyanis értékadás, míg az == az egyenlőségvizsgálat.

2015. jan. 18. 15:36
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Tényleg! Köszi!


És switch-case-zel ez nem oldható meg, csak if, if else, else struktúrával? Szét szeretném választani három esetre, attól függően, hogy N<0, N=0 vagy N>0.

2015. jan. 18. 17:55
 3/4 anonim ***** válasza:
C-ben a switch nem igazán használható ilyesmire, ugyanis a case ágaknak csak egy-egy értéket adhatsz meg (pl. case 2: akkor hajtódik végre, ha az érték pontosan kettő). Olyat viszont nem tudsz megadni, hogy hasonlítsa össze az értékeket operátorral.
2015. jan. 18. 19:02
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

Köszönöm! Akkor marad az if, else if, else.

Ment a zöld kéz. :)

2015. jan. 18. 22:19

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!