[C con Clase] Help
Anita Martinez
ana_10893 en outlook.es
Mar Feb 18 06:48:48 CET 2014
Muchas gracias en serio!! me sirvió de mucho en serio te agradezco xD
Date: Tue, 18 Feb 2014 01:53:21 -0300
From: campim en gmail.com
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] Help
Querida Anita :
muy bien por intentarlo!!!!! creo que puedo ayudarte. Te muestro algunos errores en tu código :
#include<stdio.h>#include<string.h>
int main(){ char nombre[60];
int puntos,i; int puntosTemp=0; char nombreTemp[60]; int lon;
FILE *archivo=fopen("C:/Users/juan 1/Desktop/registro.txt","r"); FILE *puntuaciones=fopen("C:/Users/juan 1/Desktop/puntuaciones.txt","w");
while(!feof(archivo)){ fscanf(archivo,"%s %i",nombre,&puntos); while
if(puntosTemp>puntos){ <-------------------------------- while if no te va a compilar, te va a dar error, si querés usar while es una cosa, if es otra
<-------------------------------- puntosTemp es cero , por lo que es muy dificil que sea mayor a algún numero que leas del registro.txt (salvo que lo que leas sea negativo)
fprintf(puntuaciones,"%s %i",nombreTemp,&puntosTemp);
<-------------------------------- &puntosTemp no va como referencia, queres escribir la dirección de memoria de puntosTemp en puntuaciones, en vez de los valores que leiste????? no lo creo.... }
else{ fprintf(puntuaciones,"%s %i",nombreTemp,&puntosTemp); }
puntosTemp=puntos; lon=strlen(nombre); for(i=0;i<lon;i++){
nombreTemp[i]=nombre[i]; } } fclose(archivo);
fclose(puntuaciones);}
aca te presento un método de ordenamiento simple, se llama burbuja, es el más simple. Obviamente en este ejemplo lo que acotado a cinco registros. de hecho te paso el archivo registro.txt para que lo uses. el archivo puntuaciones es el resultado del ordenamiento.
Espero te sirva!!!!
#include<stdio.h>
int main(){ int LIMITE = 5;
char nombre[LIMITE][60]; char AUX[60];
int puntos[LIMITE],i = 0, j = 0, temp = 0;
FILE *archivo=fopen("registro.txt","r");
FILE *puntuaciones=fopen("puntuaciones.txt","w");
/* aca te muestro lo que lei del archivo registro.txt , no es necesario hacer esto pero lo hice como para que t sirva */ for (i=0; i<LIMITE;i++)
{ fscanf(archivo,"%s %i",nombre[i],&puntos[i]);
printf("nombre leido:%s\n", nombre[i]); printf("puntos : %i\n", puntos[i]);
}
/* Metodo de la burbuja simple. ordenado de menor a mayor*/
for (i=0; i<LIMITE; i++) { for (j=0 ; j<LIMITE - 1; j++) { if (puntos[j] > puntos[j+1]) {
temp = puntos[j]; strcpy(AUX, nombre[j]); puntos[j] = puntos[j+1];
strcpy(nombre[j], nombre[j+1]); puntos[j+1] = temp; strcpy(nombre[j+1], AUX);
} } }
/* aca es donde guardo el resultado ordenado en el archivo puntuaciones */
for (i=0; i<LIMITE;i++)
{ fprintf(puntuaciones, "%s %i\n", nombre[i], puntos[i]); }
fclose(archivo);
fclose(puntuaciones);}
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140218/36431dcf/attachment.html>
Más información sobre la lista de distribución Cconclase