1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
//Funciones por doquier :(
#include<stdio.h>
#include<ctype.h>
void captura (void);
int valida (int);
float promedio(int,int,int);
void salida(char[30],float);
char* obs(float);
main()
{
captura();
return 0;
}
void captura(void)
{
char name[30];
int n1,n2,n3;
float average;
printf("\n Ingrese el nombre del estudiante : ");
gets(name); // Here it's the problem
printf("\n Ingrese la nota 1 : ");
scanf("%i", &n1);
n1= valida(n1);
printf("\n Ingrese la nota 2 : ");
scanf("%d", &n2);
n2=valida(n2);
printf("\n Ingrese la nota 3 : ");
scanf("%d", &n3);
n3=valida(n3);
average=promedio(n1,n2,n3);
salida(name,average);
}
int valida(int x)
{
while ( x<0 || x>100)
{
printf("\n Ingrese una nota en el rango 0-100 :");
scanf("%d", &x);
}
return(x);
}
float promedio (int j, int k, int l)
{
return (float)((j+k+l)/3);
}
void salida(char nombre[30], float prom)
{
char resp;
printf("\n Nombre del alumno: %s", nombre);
printf("\n Promedio : %.2f", prom);
printf("\n El alumno esta : %s", obs(prom));
printf("\n **************************************");
do
{
printf("\n Desea continuar con otro estudiante? [S/N]:");
scanf("%s", &resp);
resp=toupper(resp);
if (resp !='N' && resp != 'S')
printf("ERROR INGRESE S o N");
}
while(resp !='N' && resp != 'S');
if(resp == 'S')
captura();
}
char* obs(float v)
{
if(v>69)
return("aprobado");
else
return("Reprobado");
}
|