Tordy József kérdése:
Ez miért nem működik nekem sima C-ben?
Figyelt kérdés
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a, b;
b=2;
printf("Adj meg egy pozitiv egesz szamot:\n");
scanf("%d",&a);
while(b<=a){
if(a%b==0){
a = a % b;
printf("%d*",b);
}
else {
b=b+1;
}
}
return 0;
}
Mindig csak az első prímtényezőt írja ki. Aztán nem folytatja. Miért? Mi a fenét nem veszek észre???
2019. jan. 8. 17:34
1/5 anonim válasza:
a = a % b;
Akármilyen számot írsz be, mindig egyenlővé teszed az a-t a 2-vel való maradékjával: 0 vagy 1 lesz belőle, ami mindenképp kisebb, mint a b, és a ciklusod megáll.
2/5 A kérdező kommentje:
Értem. Sikerült és köszönöm szépen. Egy kérdésem még lenne. Mi a különbség a "%" és a "/" között? Ugyanis a műveleti jel átírása után már jó volt a képlet.
2019. jan. 8. 19:17
3/5 anonim válasza:
A "%" operátor osztási maradékot képez, a "/" meg eloszt két operandust.
4/5 A kérdező kommentje:
Hülyeséget kérdeztem. Bent van a válaszodban, hogy mi a különbség. Köszi még 1x! :D
2019. jan. 8. 19:52
5/5 tabaki válasza:
Nem tartozik szorosabban a kérdéshez, meg nem is okoz problémát, de az #include <stdlib.h> szerintem nem szükséges, az a=a/b és a b=b+1 meg lehetne „césebben” a/=b, illetve b++ is.
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!