Título: [Ayuda]Ejercicio de principiante
Publicado por: bestfriend en 20 Mayo 2015, 05:35 am
Hola tengo un problema con el programa que vengo desarrollando para la primera pregunta del siguiente archivo Ejercicio (https://drive.google.com/file/d/0B-T3GRGCH9STdHUzVm1YOEs1Qmc/view?usp=sharing). El programa me falla a la hora de mostrar el resultado despues de hacer el calculo para el estudiante con mayor o menor promedio y su respectiva "cedula". Me dice 0, no hallo que hacer por favor ayudenme :-\ Aqui les dejo lo que llevo de código: //Librerias standard #include <stdio.h> #include <stdlib.h> //Variables Globales char rsp; int ced,mayorP,menorP,cedMa,cedMe; int cantT=0,cant1=0,cant2=0,cantR=0; float prom1=0,prom2=0,promR=0,prom,promG;
//Funciones
void entrada(){ printf("Hola! Bienvenido al programa de ubicacion de la UNIMET\n"); printf(" \n"); printf("Por favor ingrese su cedula de identidad\n"); scanf(" %i",&ced); printf(" \n"); printf("Ingrese su promedio de notas en el rango 0-20\n"); scanf(" %f",&prom); printf(" \n"); } void calculo(){ printf("Reporte del Aspirante\n"); printf(" \n"); printf("La cedula del estudiante es: %i\n",ced); printf(" \n"); printf("El promedio del estudiante es: %.0f\n",prom); printf(" \n)"); cantT=cantT+1; if(prom>=18){ printf("Usted ha sido ubicado en el trimestre DOS\n)"); prom2=prom2+prom; cant2=cant2+1; } else if (prom>=12){ printf("Usted ha sido ubicado en el trimestre UNO\n"); prom1=prom1+prom; cant1=cant1+1; } else{ promR=promR+prom; cantR=cantR+1; printf("Rechazado\n"); } } void calculoCedula(){ if(prom>mayorP){ prom=mayorP; ced=cedMa; } else if(prom<menorP){ prom=menorP; ced=cedMe; } } void calculoPromedios(){ promG=(prom1+prom2+promR)/cantT; promR=promR/cantR; prom2=prom2/cant2; prom1=prom1/cant1; }
void salida(){ printf("La cantidad total de alumnos aspirantes es: %i\n",cantT); printf("La cantidad de alumnos ubicados en el trimestre DOS es: %i\n",cant2); printf("La cantidad de alumnos ubicados en el trimestre UNO es: %i\n",cant1); printf("El promedio de los aspirantes al trimestre DOS es: %.2f\n",prom2); printf("El promedio de los aspirantes al trimestre UNO es: %.2f\n",prom1); printf("El promedio general del trimestre es: %.2f\n",promG); printf("El estudiante con mayor promedio fue: %i ",cedMa); printf(" con un promedio de: %i\n", mayorP); printf("El estudiante con menor promedio fue: %i ",cedMe); printf(" con un promedio de: %i\n", menorP); } //Programa Principal main(){ do{ entrada(); calculo(); printf(" \n"); printf("Si desea hacer otra ubicacion presione S\n"); scanf(" %c",&rsp); }while(rsp=='s'|| rsp=='S');//Condicion del Ciclo de Repeticion calculoPromedios(); calculoCedula(); printf(" \n"); salida(); system("pause"); }
Soy un principiante así que cualquier consejo o sugerencia es bienvenido/a . :D
Título: Re: [Ayuda]Ejercicio de principiante
Publicado por: engel lex en 20 Mayo 2015, 05:59 am
en qué falla?
algo que es recomendable evitar es hacer todo a base de variables globales... cada cosa debe ir con sus variables locales a menos que no hayan muchas opciones
Título: Re: [Ayuda]Ejercicio de principiante
Publicado por: bestfriend en 20 Mayo 2015, 22:02 pm
Me falla en reconocer quien fue el alumno con mayor/menor promedio y su respectiva cedula :(
|