[C con Clase] Consulta sobre ejemplo en C de promedios
Santiago Tabarez
santiago230792 en gmail.com
Mar Oct 2 17:06:33 CEST 2012
Yo había encontrado el siguiente ejemplo escrito en C en internet:
------------------------------------------------------------------------------------------
/* Código creado por pax 2012 */
#include <stdio.h>
#include <conio.h>
int main(){
int not1, not2, not3, opt;
float prom;
a: /*Inicio*/
printf("Ingrese la nota del primer trimestre\n");
scanf("%d", ¬1);
if(not1 > 10)
{
printf("\nLa nota del trimestre tiene que ser igual o menor a 10\n\n");
goto a;
}
b:
printf("Ingrese la nota del segundo trimestre\n");
scanf("%d", ¬2);
if(not2 > 10)
{
printf("\nLa nota del trimestre tiene que ser igual o menor a 10\n\n");
goto b;
}
c:
printf("Ingrese la nota del tercer trimestre\n");
scanf("%d", ¬3);
if(not3 > 10)
{
printf("\nLa nota del trimestre tiene que ser igual o menor a 10\n\n");
goto c;
}
prom = (float) (not1 + not2 + not3) / 3;
printf("\n La nota final es: %.2f\n", prom);
if(prom >= 6)
{
printf("\nAPROBADO\n");
}
if(prom < 6 && prom >= 4)
{
printf("\nDICIEMBRE\n");
}
if(prom < 4)
{
printf("\nMARZO\n");
}
/* Continuar - Finalizar */
printf("\n\n¿Desea volver a operar?");
printf("\n1. Si");
printf("\n2. No\n");
scanf("%i",&opt);
if(opt == 1)goto a;
printf("\n\nPresione una tecla para cerrar el programa");
getch();
return 0;
}
------------------------------------------------------------------------------------------
pero algo no me había convencido de este ejemplo, así que lo modifiqué un poco:
------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#if defined (linux)
#define TERM_CLEAN "clear"
#else
#define TERM_CLEAN "cls"
#endif
int resolver_promedio (void);
int main (void)
{
int init = resolver_promedio ();
system (TERM_CLEAN);
if (init == 1)
{
resolver_promedio ();
}
printf("\n\nPresione una tecla para cerrar el programa");
getchar ();
getchar ();
return 0;
}
int resolver_promedio (void)
{
unsigned int nota1 = NULL, nota2 = NULL, nota3 = NULL, opcion, promedio;
do {
system (TERM_CLEAN);
printf ("Ingrese la nota del primer trimestre\nEl rango de notas es
0 - 10\n");
scanf ("%d", ¬a1);
} while (nota1 > 10);
do {
system (TERM_CLEAN);
printf ("Ingrese la nota del segundo trimestre\nEl rango de notas es
0 - 10\n");
scanf ("%d", ¬a2);
} while (nota2 > 10);
do {
system (TERM_CLEAN);
printf ("Ingrese la nota del tercer trimestre\nEl rango de notas es
0 - 10\n");
scanf ("%d", ¬a3);
} while (nota3 > 10);
system (TERM_CLEAN);
promedio = ((nota1 + nota2 + nota3) / (3));
if (promedio >= 6)
printf ("\nPromedio anual %d\tAPROBADO\n", promedio);
else if ((promedio < 6) && (promedio >= 4))
printf ("\nPromedio anual %d\tEXAMEN DICIEMBRE\n", promedio);
else if (promedio < 4)
printf ("\nPromedio anual %d\tEXAMEN MARZO\n", promedio);
printf("\n\n¿Desea calcular otros promedios anuales?"
"\n1. Si"
"\n0. No\n");
scanf("%i", &opcion);
if (opcion == 1)
return 1;
return 0;
}
------------------------------------------------------------------------------------------
¿Qué les parece? ¿En qué podría estar fallando el ejemplo original y
el ejemplo modificado por mí? ¿Tienen alguna recomendacion que quieran
hacerme?
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20121002/eba196fb/attachment.html>
Más información sobre la lista de distribución Cconclase