elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Ayuda en ordenar numeros pares e impares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en ordenar numeros pares e impares  (Leído 11,291 veces)
[Decoded]

Desconectado Desconectado

Mensajes: 229


#Python Programmer


Ver Perfil WWW
Ayuda en ordenar numeros pares e impares
« en: 26 Diciembre 2009, 21:52 »

Hola otra vez, espero puedan volver a ayudarme... lo que pasa es que, necesito ordenar 20 valores ingresados aleatoriamente por una persona, y el programa ordenarlo.

la forma del cual debe estar ordenado es: Para los numeros pares tienen que estar de mayor a menor... Para numeros impares de menor a mayor..

espero puedan ayudarme, les estare enteramente agradecido.. Gracias! =)


En línea

AckeR

Desconectado Desconectado

Mensajes: 109


Tu única Limitación Es tú Imaginación (:


Ver Perfil
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #1 en: 26 Diciembre 2009, 23:04 »

Hola... podrias colocar el code que llevas hecho por ahora...

No es dificil lo que pides, en tu caso podrias almacenar los numeros en 2 arrays(pares e impares ), y luego utilizar algun metodo de ordenamiento ya sea burbuja, selección directa o quicksort...

bye suerte!


En línea


...DaR LaS GraCiaS No CuestA NadA...
nnooxx

Desconectado Desconectado

Mensajes: 138


Ver Perfil
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #2 en: 26 Diciembre 2009, 23:13 »

yo habia pensado en algocomo esto pero me da error mira:

Código
  1. #include <stdio.h>
  2. main()
  3. int i,a,numero;
  4. {
  5. printf("Introduce numeros de uno en uno.\n");
  6. for(i=0; i<20; i++)
  7. {
  8.  int numero[20];
  9.  numero[i] = scanf("%i",&numero);
  10.  for (a=0;)
  11.   {
  12.   a = numero[i]/'2';
  13.   if (a<1;)
  14.       {
  15.       printf("%i no es par\n");
  16.       }
  17.   }
  18. }
  19. printf ("%i si que es par\n",numero[i]);
  20. }

el error me lo da el gcc con linux y son estos:

clasinum.c: In function ‘main’:
clasinum.c:3: error: declaration for parameter ‘numero’ but no such parameter
clasinum.c:3: error: declaration for parameter ‘a’ but no such parameter
clasinum.c:3: error: declaration for parameter ‘i’ but no such parameter
clasinum.c:9: warning: format ‘%i’ expects type ‘int *’, but argument 2 has type ‘int (*)[20]’
clasinum.c:10: error: expected expression before ‘)’ token
clasinum.c:13: error: expected ‘)’ before ‘;’ token
clasinum.c:15: warning: too few arguments for format
clasinum.c:19: error: subscripted value is neither array nor pointer


demasiados errores no XDXD bueno a ver si me ayudais un poco


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #3 en: 26 Diciembre 2009, 23:22 »

Para saber si un numero es par o impar basta con hacer esto:

Código
  1. int a;
  2.  
  3. scanf("%d",&a);
  4.  
  5. if(a%2==0)
  6.  printf("\nEs par\n");
  7.  
  8. else
  9.  printf("\nEs impar\n");  

Recorres el vector original y dependiendo de la condicion lo pones en el vector de los pares o en el de los impares, luego ordenas esos vectores con algun metodo de ordenamiento como ya te dijeron, y asunto arreglado.

Un saludo
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
nnooxx

Desconectado Desconectado

Mensajes: 138


Ver Perfil
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #4 en: 26 Diciembre 2009, 23:28 »

una pregunta que significa "a%2" ??? porque esa es la clave de tu codigo no ??? un saludo y gracias
En línea

AckeR

Desconectado Desconectado

Mensajes: 109


Tu única Limitación Es tú Imaginación (:


Ver Perfil
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #5 en: 26 Diciembre 2009, 23:35 »

una pregunta que significa "a%2" ??? porque esa es la clave de tu codigo no ??? un saludo y gracias

es para sacar el resto... eso quiere decir que si A % 2 == 0 ... se refiere que si el resto es 0 es par y si no es impar
En línea


...DaR LaS GraCiaS No CuestA NadA...
nnooxx

Desconectado Desconectado

Mensajes: 138


Ver Perfil
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #6 en: 26 Diciembre 2009, 23:37 »

Muchas gracias entonces es mucho mas facil de lo que pensaba joer y yo aki matandome a pensar XDXD muchas gracias y un saludo
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #7 en: 27 Diciembre 2009, 07:23 »

Es un útil ejercicio.

Sólo como dato; es más eficiente hacer algo como:
Código:
#define Par(X) ((X) & 1)
Que usar el operador '%'.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #8 en: 27 Diciembre 2009, 08:02 »

Si no me falla la memoria ese dato lo habias preguntado hace un tiempo porque lo habias leido en una diapositiva de tu universidad, no? busque el post para recordar pero no lo encontre.

Recuerdo que cuando lei aquel post hice la prueba de tiempos, pero como no recordaba como habia salido la volvi a hacer, y basicamente no encontre diferencia alguna entre ambos metodos.

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.  int i;
  6.  
  7. i=2147483646;
  8.  
  9. if((i%2)==0)
  10. printf("\nPar\n");
  11. else
  12. printf("\nImpar");
  13.  
  14. return 0;
  15. }

1) Execution time: 0.046s
2) Execution time: 0.044s


Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.  int i;
  6.  
  7. i=2147483646;
  8.  
  9. if((i&1)==0)
  10. printf("\nPar\n");
  11. else
  12. printf("\nImpar");
  13.  
  14. return 0;
  15. }


1) Execution time: 0.051s
2) Execution time: 0.044s


Y luego de medir ambos unas 50 veces la media fue 0.045s.

Un saludo
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #9 en: 27 Diciembre 2009, 08:19 »

La duda la tuve para saber si el operador & se podría comprobar si "m" era multiplo de "n", es decir, para todos.

Es bien sabido que es más eficiente el operador &, no te voy a decir el por qué, porque francamente no lo sé, pero se lo he leido a un usuario de elrincondelc, su nickname es cheroky.

Es más, para sacarme de dudas, le preguntaré y aquí dejaré la cita.

Por cierto, ¿con qué mides el tiempo de ejecución?
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #10 en: 27 Diciembre 2009, 09:05 »

No dije que no fuese mas eficiente pero en este caso la diferencia tiende a ser infima. Incluso puedes hacerlo con xxxxxxxx numeros en un ciclo para ver si la sobrecarga de tiempo afecta a la medicion total pero ni asi consigues una diferencia notable, mejor dicho no consigues diferencia alguna ya que no puedes determinar quien logra mejores tiempos como generalidad, por lo menos en el caso de numeros pares e impares.

En cuanto al "por que" supongo que la respuesta la tienes buscando sobre Bitwise operators, calculo que Cheroky te dira algo parecido.

En cuanto a lo del tiempo lo medi con ptime porque justo estaba en el escritorio ;D.

Un saludo
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #11 en: 27 Diciembre 2009, 09:10 »

No dije que no fuese mas eficiente pero en este caso la diferencia tiende a ser infima. Incluso puedes hacerlo con xxxxxxxx numeros en un ciclo para ver si la sobrecarga de tiempo afecta a la medicion total pero ni asi consigues una diferencia notable, mejor dicho no consigues diferencia alguna ya que no puedes determinar quien logra mejores tiempos como generalidad, por lo menos en el caso de numeros pares e impares.

En cuanto al "por que" supongo que la respuesta la tienes buscando sobre Bitwise operators, calculo que Cheroky te dira algo parecido.

En cuanto a lo del tiempo lo medi con ptime porque justo estaba en el escritorio ;D.

Un saludo

Por supuesto, yo al usuario no le dije que lo implementara, dije : "Sólo como dato", solo para que supiera.

Pero en fin, debe de haber algún ejemplo tajante para determinar la eficiencia.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #12 en: 27 Diciembre 2009, 09:37 »

Yo tampoco dije que lo implementara o no, simplemente aclare hasta adonde llegaba la eficiencia extra en este caso.

En otros casos seguro se podra ser tajante, pero no creo que sea comparando el operador de modulo contra los operadores a nivel bit. En todo caso habria que comparar los operadores a nivel bit contra los operadores logicos, lo cual tampoco es muy correcto ya que los primeros evaluan bits individuales mientras que los segundos evaluan expresiones, pero en fin, despues nos cuentas que dijo Cheroky!

Un saludo.
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
xtermsh

Desconectado Desconectado

Mensajes: 182



Ver Perfil
Re: Ayuda en ordenar numeros pares e impares
« Respuesta #13 en: 27 Diciembre 2009, 10:14 »

Supongo que el operador "&" es más eficiente porque trabaja a bajo nivel, y lo único que se me viene a la cabeza es que "%" debe realizar 2 operaciones, la división y la resta, tal vez esté equivocado pero esa es mi idea.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calcular numeros impares, de 0 a n. « 1 2 »
Programación C/C++
Vicks 15 5,188 Último mensaje 22 Febrero 2012, 18:41
por Caster
Pares e impares
Programación C/C++
Anastacio 5 1,753 Último mensaje 7 Marzo 2012, 19:36
por Eternal Idol
Ordenar 5 números de menor a mayor e imprimir los números impares
Programación C/C++
ERIK546 6 5,051 Último mensaje 23 Junio 2012, 00:36
por ERIK546
Me presento y me gustaría un ayudita ordenamiento de impares e pares
Programación C/C++
luis456 6 876 Último mensaje 8 Diciembre 2012, 13:31
por luis456
Programa en C (Pares e Impares)
Programación C/C++
sora_ori 1 649 Último mensaje 15 Abril 2013, 15:40
por leosansan
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines