Ordenar ristra de números

Marta Flamarique Echeverría

/*Programa que lee de teclado una ristra de números enteros acaba en cero, los almacena en un array, los ordena de mayor a menor y vuelve a escribir todos esos números ordenados por pantalla, además de guardarlos en un fichero de texto y también en otro binario. */

#include <stdio.h>
#include <stdlib.h>

int main( )
{
int numero[100], i=0, contador, n;
void seleccion(int s[], int cont);
FILE *fp;
FILE*pf;

fp=fopen(“array_ordenado.txt”, “w”);
pf=fopen(“array_ordenado_binario.txt”, “wb”);

printf(“Dame la rista de numeros acabado en 0:”);
do{
scanf(“%d”, &n);
numero[i]=n;
i++;
} while(n!=0);

contador=i-1; // número de datos quitando el cero

printf(“\n\nLa rista desordenada es: “);
for(i=0;i<contador; i++)
{ printf(“%d”, numero[i]); }

printf(“\n\nLa rista ordenada es: “);
seleccion(numero, contador);
for(i=0; i<contador; i++)
{
printf(“%d”, numero[i]);
fprintf(fp, “%d”, numero[i]); // fichero de texto
}

fwrite(numero, sizeof(int), contador, pf);} // fichero binario

fclose(fp); fclose(pf);
return 0;
}

void seleccion(int s[], int cont)
{
int i, j, itemp, temp, intercambio;

for(i=0; i<cont-1; i++)
{
intercambio=0;
temp=s[i];
itemp=i;
for(j=i+1; j<cont; j++)
{
if(s[j]<temp)
{
temp=s[j];
itemp=j;
intercambio=1;
}
}
if(intercambio)
{
s[itemp]=s[i];
s[i]=temp;
}}}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s