Autor
|
Tema: Ayuda en c con paso de procedimiento [?] (Leído 2,110 veces)
|
Necrosisdezer
Desconectado
Mensajes: 3
|
Hola necesito ayuda con este programa el cual la función es que pida un numero y ese lo divida en entre 2 asta que el valor ya no se puede dividir y imprima los residuos usando el ciclo while pero al copilarlo y ejecutarlo me marca puro 1 y 0 de forma continua sin interrumpir #include <stdio.h> #include <conio.h> #include <stdio.h>
void division(int num) { int resi; while(num!=0){ resi=num%2; printf("%d",resi);
if(num<=1) num=num-0/2; else num=num/2;
} }
int main() { int num;
printf("Introduce un numero: "); scanf("%d",&num); division(num); return 0; }
|
|
« Última modificación: 8 Septiembre 2016, 23:40 pm por Necrosisdezer »
|
En línea
|
|
|
|
Necrosisdezer
Desconectado
Mensajes: 3
|
[code=c]
[/code]Hola necesito ayuda con este programa el cual la función es que pida un numero y ese lo divida en entre 2 asta que el valor ya no se puede dividir y imprima los residuos usando el ciclo while pero al copilarlo y ejecutarlo me marca puro 1 y 0 de forma continua sin interrumpir #include <stdio.h> #include <conio.h> #include <stdio.h>
void division(int num) { int resi; while(num!=0){ resi=num%2; printf("%d",resi);
if(num<=1) num=num-0/2; else num=num/2;
} }
int main() { int num;
printf("Introduce un numero: "); scanf("%d",&num); division(num); return 0; }
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
if(num<=1) num=num-0/2; else num=num/2;
En primer lugar,, lo de num = num-0/2 es como poner num = num, que es como no hacer nada. Por tanto, cuando num sea 1,no hará nada, y se quedará en bucle infinito.
|
|
|
En línea
|
|
|
|
Necrosisdezer
Desconectado
Mensajes: 3
|
a perdon me equivoque de codigo #include <stdio.h> #include <conio.h> #include <stdio.h>
void division(int num) { int resi; while(num>=0){ resi=num%2; printf("%d",resi);
if(num==1) num=num-1/2; else num=num/2;
} }
int main() { int num;
printf("Introduce un numero: "); scanf("%d",&num); division(num); return 0; }
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Es lo mismo. 0/2 y 1/2 son ambos 0. Es una división entera sin decimales, y se redondea hacia abajo. Poner == en vez de <= no arregla tampoco el problema, ya que si fuera 0, lo divides entre 2, que da 0 de nuevo.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda con procedimiento
Programación Visual Basic
|
4D1cTo
|
8
|
3,311
|
19 Febrero 2008, 03:54 am
por Chefito
|
|
|
Ayuda procedimiento Pascal
Programación General
|
manu3742
|
3
|
2,820
|
20 Abril 2011, 17:48 pm
por manu3742
|
|
|
Ayuda con procedimiento
.NET (C#, VB.NET, ASP)
|
SγиtαxEяяoя
|
3
|
2,455
|
10 Julio 2013, 21:10 pm
por SγиtαxEяяoя
|
|
|
Ayuda: Detener procedimiento
.NET (C#, VB.NET, ASP)
|
Tomas1982
|
1
|
1,743
|
8 Septiembre 2016, 23:14 pm
por Eleкtro
|
|
|
Ayuda con procedimiento !
.NET (C#, VB.NET, ASP)
|
TrashAmbishion
|
2
|
3,159
|
30 Diciembre 2017, 02:22 am
por TrashAmbishion
|
|