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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ordenar 5 números de menor a mayor e imprimir los números impares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ordenar 5 números de menor a mayor e imprimir los números impares  (Leído 25,245 veces)
ERIK546

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Ordenar 5 números de menor a mayor e imprimir los números impares
« en: 20 Junio 2012, 22:08 pm »

Hola a todos, como dice el título no es un programa muy complicado sin embargo no he podido hacer ejecutar de una manera correcta al marcarme error en el ejecutable. Solicito su ayuda les dejo el código, supongo que el problema se encuentra en la dimensión del arreglo. Gracias de antemano.
Código:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   
       int i,j, aux;
       int arreglo[5];
       printf("Programa que ordena de menor a mayor 5 numeros e imprime los impares\n");
       printf("Introduce los numeros\n");
       for(i=0;i<=4;i++){
                        scanf("%d",arreglo[i]);
                         }
       for(i=0;i<=4;i++){
                         for(j=i+1;j<=4;j++){
                                             if(arreglo[i]>arreglo[j]){
                                                                       arreglo[i]=aux;
                                                                       arreglo[i]=arreglo[j];
                                                                       arreglo[j]=aux;
                                                                       }
                                             }
                         }
       for(i=0;i<=4;i++){
                         printf("El ordenamiento queda de la siguiente manera: %d\n",arreglo[i]);
                         }
       for(i=0;i<=4;i++){
                         if((arreglo[i]/2)!=0){
                                               printf("Los numeros impares son: %d\n",arreglo[i]);
                                               }
                         }
 
  system("PAUSE");
  return 0;
}


En línea

maxim_o

Desconectado Desconectado

Mensajes: 186


Ver Perfil
Re: Ordenar 5 números de menor a mayor e imprimir los números impares
« Respuesta #1 en: 20 Junio 2012, 22:31 pm »

No lo he mirado mucho... pero asi a ojo parece un error en la asignacion en el if...
Código
  1. arreglo[i]=aux;
  2. arreglo[i]=arreglo[j];
  3. arreglo[j]=aux;
  4.  

Código
  1. aux=arreglo[i];
  2. arreglo[i]=arreglo[j];
  3. arreglo[j]=aux;
  4.  


En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: Ordenar 5 números de menor a mayor e imprimir los números impares
« Respuesta #2 en: 20 Junio 2012, 23:15 pm »

Hola,

Tienes 2 problemas:
  • Utilizas mal el término de intercambiar valor entre 2 variables.
  • Utilizas mal el término de punteros.

Tus errores recaen en la variable que le pasas al "scanf", debe ser un puntero. Entonces debe ser "&arreglo(i)" y en la utilización incorrecta del intercambio de variables.

Te recomiendo tratar de indentar mejor, mira que se ve un poco más claro.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  
  7.       int i,j, aux;
  8.       int arreglo[5];
  9.       printf("Programa que ordena de menor a mayor 5 numeros e imprime los impares\n");
  10.       printf("Introduce los numeros\n");
  11.       for(i=0;i<=4;i++)
  12.       {
  13.           scanf("%d",&arreglo[i]);
  14.       }
  15.       for(i=0;i<=4;i++)
  16.       {
  17.           for(j=i+1;j<=4;j++)
  18.           {
  19.               if(arreglo[i]>arreglo[j])
  20.               {
  21.                   aux = arreglo[i];
  22.                   arreglo[i] = arreglo[j];
  23.                   arreglo[j] = aux;
  24.               }
  25.           }
  26.       }
  27.       for(i=0;i<=4;i++)
  28.       {
  29.           printf("El ordenamiento queda de la siguiente manera: %d\n",arreglo[i]);
  30.       }
  31.       for(i=0;i<=4;i++)
  32.       {
  33.           if((arreglo[i]%2)!=0)
  34.           {
  35.               printf("Los numeros impares son: %d\n",arreglo[i]);
  36.           }
  37.       }
  38.       system("PAUSE");
  39.       return 0;
  40. }

Un saludo,
Iván Portilla.
En línea

ERIK546

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Re: Ordenar 5 números de menor a mayor e imprimir los números impares
« Respuesta #3 en: 20 Junio 2012, 23:17 pm »

No lo he mirado mucho... pero asi a ojo parece un error en la asignacion en el if...
Código
  1. arreglo[i]=aux;
  2. arreglo[i]=arreglo[j];
  3. arreglo[j]=aux;
  4.  

Código
  1. aux=arreglo[i];
  2. arreglo[i]=arreglo[j];
  3. arreglo[j]=aux;
  4.  
Lo he intentado pero sigue marcándome dicho error.
En línea

maxim_o

Desconectado Desconectado

Mensajes: 186


Ver Perfil
Re: Ordenar 5 números de menor a mayor e imprimir los números impares
« Respuesta #4 en: 20 Junio 2012, 23:49 pm »

Mira tambien lo que te dijo The swash...
En el scanf debes pasarle una direccion de memoria &arreglo
En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: Ordenar 5 números de menor a mayor e imprimir los números impares
« Respuesta #5 en: 21 Junio 2012, 01:01 am »

Me apetecía practicar con C++ que me estoy poniendo otra vez con él, mírate este código :)

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int array[5],x=0,i=0,temp;
  7. for (x=0;x<=4;x++)
  8. {
  9. cout << "Inserta el valor " << x <<endl;
  10. cin >> array[x];
  11. }
  12. for (x=0;x<=4;x++)
  13. {
  14. for (i=0;i<=3;i++)
  15. {
  16. if(array[i] > array[i+1])
  17. {
  18. temp = array[i];
  19. array[i] = array[i+1];
  20. array[i+1] = temp;
  21. }
  22. }
  23. }
  24. cout <<"Ordenamiento: " <<endl;
  25. for (x=0;x<=4;x++)
  26. {
  27. cout << array[x] << endl;
  28. }
  29. cout << "IMPARES:"<<endl;
  30. for (x=0;x<=4;x++)
  31. {
  32. if(array[x] % 2 != 0)
  33. {
  34. cout << "Valor-->" << array[x]<<endl;
  35. }
  36. }
  37.  
  38. return 0;
  39. }
  40.  
« Última modificación: 21 Junio 2012, 01:02 am por overxfl0w13 » En línea

[/url]
ERIK546

Desconectado Desconectado

Mensajes: 44



Ver Perfil WWW
Re: Ordenar 5 números de menor a mayor e imprimir los números impares
« Respuesta #6 en: 23 Junio 2012, 00:36 am »

Hola,

Tienes 2 problemas:
  • Utilizas mal el término de intercambiar valor entre 2 variables.
  • Utilizas mal el término de punteros.

Tus errores recaen en la variable que le pasas al "scanf", debe ser un puntero. Entonces debe ser "&arreglo(i)" y en la utilización incorrecta del intercambio de variables.

Te recomiendo tratar de indentar mejor, mira que se ve un poco más claro.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  
  7.       int i,j, aux;
  8.       int arreglo[5];
  9.       printf("Programa que ordena de menor a mayor 5 numeros e imprime los impares\n");
  10.       printf("Introduce los numeros\n");
  11.       for(i=0;i<=4;i++)
  12.       {
  13.           scanf("%d",&arreglo[i]);
  14.       }
  15.       for(i=0;i<=4;i++)
  16.       {
  17.           for(j=i+1;j<=4;j++)
  18.           {
  19.               if(arreglo[i]>arreglo[j])
  20.               {
  21.                   aux = arreglo[i];
  22.                   arreglo[i] = arreglo[j];
  23.                   arreglo[j] = aux;
  24.               }
  25.           }
  26.       }
  27.       for(i=0;i<=4;i++)
  28.       {
  29.           printf("El ordenamiento queda de la siguiente manera: %d\n",arreglo[i]);
  30.       }
  31.       for(i=0;i<=4;i++)
  32.       {
  33.           if((arreglo[i]%2)!=0)
  34.           {
  35.               printf("Los numeros impares son: %d\n",arreglo[i]);
  36.           }
  37.       }
  38.       system("PAUSE");
  39.       return 0;
  40. }

Un saludo,
Iván Portilla.
Muchas gracias ha corrido a la perfección.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines