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.
#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;
}
No lo he mirado mucho... pero asi a ojo parece un error en la asignacion en el if...
arreglo[i]=aux;
arreglo[i]=arreglo[j];
arreglo[j]=aux;
aux=arreglo[i];
arreglo[i]=arreglo[j];
arreglo[j]=aux;
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.#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])
{
aux = arreglo[i];
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;
}
Un saludo,
Iván Portilla.
Cita de: maxim_o 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...
arreglo[i]=aux;
arreglo[i]=arreglo[j];
arreglo[j]=aux;
aux=arreglo[i];
arreglo[i]=arreglo[j];
arreglo[j]=aux;
Lo he intentado pero sigue marcándome dicho error.
Mira tambien lo que te dijo The swash...
En el scanf debes pasarle una direccion de memoria &arreglo
Me apetecía practicar con C++ que me estoy poniendo otra vez con él, mírate este código :)
#include <iostream>
using namespace std;
int main()
{
int array[5],x=0,i=0,temp;
for (x=0;x<=4;x++)
{
cout << "Inserta el valor " << x <<endl;
cin >> array[x];
}
for (x=0;x<=4;x++)
{
for (i=0;i<=3;i++)
{
if(array[i] > array[i+1])
{
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
cout <<"Ordenamiento: " <<endl;
for (x=0;x<=4;x++)
{
cout << array[x] << endl;
}
cout << "IMPARES:"<<endl;
for (x=0;x<=4;x++)
{
if(array[x] % 2 != 0)
{
cout << "Valor-->" << array[x]<<endl;
}
}
return 0;
}
Cita de: The Swash 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.
#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])
{
aux = arreglo[i];
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;
}
Un saludo,
Iván Portilla.
Muchas gracias ha corrido a la perfección.