Ejercicio:
Después de leer una secuencia de números reales (como mucho 100) del fichero del ejercicio anterior, que los ordene y los saque por pantalla ordenados.
Sigue leyendo para ver la solución.
/****** Inicio programa ******/
#include <stdio.h>
main()
{
FILE *Fd;
char texto[30], fitxizen[30];
float zenb,zbkiak[100],tmp;
int i=0,j,k;
printf("Mete el nombre del fichero del que cogeremos los numeros reales: ");
gets(fitxizen);
Fd=fopen(fitxizen,"rb");
if (Fd==NULL)
printf("Error abriendo el fichero");
while (feof(Fd)==0)
{
fgets(texto,30,Fd);
sscanf(texto,"%f",&zenb);
zbkiak[i]=zenb;
i++;
}
i=i-1; //hacemos i-1 ya que fgets pilla tambien la ultima linea y esa no nos interesa
for (j=0;j<i;j++)
{
for (k=j+1;k<i;k++)
{
if(zbkiak[j]>zbkiak[k])
{
tmp=zbkiak[k];
zbkiak[k]=zbkiak[j];
zbkiak[j]=tmp;
}
}
}
printf("Los numeros ordenados: \n");
for (j=0;j<i;j++)
{
printf("%.2f \n",zbkiak[j]);
}
getchar();
}
/****** Fin programa******/
Comments
3 Responses to “ Leer números de un fichero - Programación C ”
Post a Comment | Enviar comentarios ( Atom )
Hola, es la primera vez que comento aunque leo tu blog desde hace un tiempo.
23 de septiembre de 2010, 21:26Comento porque he visto en este codigo y en algunos anteriores que después de comprobar si el fichero a sido abierto solo muestras un mensaje de error pero el codigo continua, lo que provoca un fallo de segmentacion. No seria mejor que despues del printf salieras del programa con algun codigo de error?
Buenas Anónimo. Sí, lo que comentas sería lo más recomendable.
23 de septiembre de 2010, 21:30Un saludo.
Excelente ayuda... muchas gracias!!!
25 de noviembre de 2011, 23:41Publicar un comentario
Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.