#include "./mylibrary.h" int main(int argc,char *argv[]){ TREE_NODE *T, *Z; FILE *pfile, *gfile; char *archivo, *salida, linea[100]; int nota, orden, Nnotas=0; if (argc!=2) /*Verificar que se ingrese nombre de archivo*/ { printf(" ERROR!...debe utilizar \n %s \n", argv[0]); exit(1); } archivo=argv[1]; /*asigna nombre de archivo a archivo*/ if (( pfile=fopen(archivo,"r"))==NULL) { /*Verificar que el archivo exista*/ printf(" Imposible abrir %s \n",archivo); exit(1); } T=NULL; /**ingresa las notas del archivo a un árbol binario modificado**/ while (fgets (linea, sizeof (linea), pfile) != NULL) { if ((linea[0]!='#')&&(linea[0]!='\n')) { Nnotas++; Z=(TREE_NODE *)malloc(sizeof(TREE_NODE)); Z->element=atoi(linea); Z->p=NULL; Z->left=NULL; Z->right=NULL; Tree_Insert( &T, Z); } } close(pfile); //chequea(T); /**Verifica la correcta creación del árbol (opcional)**/ /**Para ver se deben eliminar los "//" **/ pfile=fopen(archivo,"r"); salida=archivo; strcat(salida, ".out"); /*Concatena el nombre de archivo de entrada + '.out'*/ gfile=fopen(salida,"w"); /*lee el archivo de entrada*/ fprintf(gfile, "#NOTA \tPorcentaje de notas menores o iguales\n"); while (fgets (linea, sizeof (linea), pfile) != NULL) { if ((linea[0]!='#')&&(linea[0]!='\n')) /*si es una nota*/ { nota=atoi(linea); orden = search_rank( T, nota); /*busca la posición del elemento en el árbol*/ /*escribe en el archivo de salida la nota y porcentaje de notas menores o iguales*/ fprintf(gfile, "%d \t %.2f \% \n", nota, ((float)orden/(float)Nnotas)*100); } else /*si es un comentario, lo copia al archivo de salida*/ fprintf(gfile, "%s", linea); } close(pfile); close(gfile); printf("\n\t El archivo \"%s\" ha sido terminado\n\n",salida); }