[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