#include <stdlib.h>
#include <stdio.h>
/*Ejercicio 107
Realizar un programa que solicite una cantidad entera.
Dada esa cantidad X debe solicitar X números y ordenarlos
de mayor a menor*/
int cantidad; //números a ordenar
int numero; //Cada uno de los números
int posicion=0; //Ubicación del array
int i,a,b,c,d; //varios enteros ja
int main()
{
puts("ingresa la cantidad de numeros\n");
scanf("%d",&cantidad); //Se ingresa la cantidad total de números a ordenar (obvio)
int *numeros = (int*) malloc (cantidad*sizeof(int));
int *resultado= (int*) malloc (cantidad*sizeof(int));
for(i=0,d=0;i<cantidad;i++,d++)//Con este for se van guardando los números de a uno
{
printf("ingrese el numero %d\n",i+1);
scanf("%d",&numero); //Se ingresa el número i del array
numeros[d]=numero;//se guarda en la posición d del array números
}
printf("\n");
for(c=0;c<cantidad;c++) //Ordena los números de menor a mayor
{
for(a=0;a<cantidad;a++)
{
if(numeros[c]<numeros[a])
{
posicion++;
}
}
resultado[posicion]=numeros[c];
posicion=0;
}
for (b=0;b<cantidad;b++) //Imprime el resultado
{
printf("%d\n",resultado[b]);
}
getchar();
free(resultado);
free(numeros);
return EXIT_SUCCESS;
}
Mmm me parece q podrias hacerlo distinto, usando while talvez porq no la piensas de esa forma y ves si te queda mejor ;)
Cita de: XXX-ZERO-XXX en 8 Marzo 2011, 14:21 PM
Mmm me parece q podrias hacerlo distinto, usando while talvez porq no la piensas de esa forma y ves si te queda mejor ;)
For por While? me gusta mas el for ;D, es mas compacto, ademas el ciclo se repite un número finito de veces.
Jejeje q loco viste? las cosas del while.. es un loco
int numeros[cantidad]; //Aca se almacenan los numeros como se introducen
int resultado[cantidad]; //Aca es donde se ordenan
Estas lineas solo son validas en C++, aparte estas utilizando cstdlib y cstdio por lo tanto estas atacando el problema desde C++ y no desde C.
Con toda seguridad, es que estoy acostumbrado a c++, ahí están los cambios en las librerías.Lo que no entiendo es esto:
Cita de: [L]ord [R]NA en 15 Marzo 2011, 16:40 PM
int numeros[cantidad]; //Aca se almacenan los numeros como se introducen
int resultado[cantidad]; //Aca es donde se ordenan
Estas lineas solo son validas en C++...
¿por los comentarios será? ya está modificado, si es algo mas decime por favor.
;D
... al parecer no me entendiste, en C se necesita utilizar Malloc para crear Arrays dinamicos, en C++ los puedes crear simplemente asignando un valor a una variable X y luego declarando un array al cual le pasas la variable como cantidad de elementos... lo ultimo es lo que estas haciendo en el codigo.
Cita de: [L]ord [R]NA en 18 Marzo 2011, 03:51 AM
... al parecer no me entendiste, en C se necesita utilizar Malloc para crear Arrays dinamicos, en C++ los puedes crear simplemente asignando un valor a una variable X y luego declarando un array al cual le pasas la variable como cantidad de elementos... lo ultimo es lo que estas haciendo en el codigo.
Por supuesto, no me acordaba, en realidad si, pero como el compilador no me dio errores creí que era válido.