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?
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!
if(N==0)-t írj.
Az = ugyanis értékadás, míg az == az egyenlőségvizsgálat.
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.
Köszönöm! Akkor marad az if, else if, else.
Ment a zöld kéz. :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!