Recuerden que el EOF(End-of-file) indica que ya no hay información en un flujo de datos, en este caso, en ubuntu con las teclas Ctrl-D haces que te muestre el resultado del programa.
En este ejemplo, podemos ver los diferentes controles de programa como while, switch con case, e if's anidados en la parte final.
Para ver el código puedes mover con la barra de desplazamiento en la parte de abajo.
#include <stdio.h> //incluimos libreria int main(int argc, char** args) //iniciamos funcion main { int grade; //declaramos variable que leera la nota int aCount = 0, bCount = 0, cCount = 0, dCount = 0, fCount = 0; //iniciar los contadores en 0 int promedio, multi, suma; //declaramos variables para realizar la operacion del promedio printf("Ingresa las notas del grupo.\n"); //imprime mensajes al usuario printf("Ingresa un caracter EOF para finalizar.\n"); while( ( grade = getchar() ) != EOF) { //ciclo mientras grado sea diferente a EOF, que es end-of-file switch (grade) { //iniciamos swich que condicionara a grado case 'A': case 'a': // si es letra a, la empieza a contar ++aCount; break; case 'B': case 'b':// si es letra b, la empieza a contar ++bCount; break; case 'C': case 'c':// si es letra c, la empieza a contar ++cCount; break; case 'D': case 'd':// si es letra d, la empieza a contar ++dCount; break; case 'F': case 'f':// si es letra f, la empieza a contar ++fCount; break; case '\n': case ' ':// si es espacio o salto de linea no hace nada break; default: //si no cumple ninguna, se llama default printf("Nota incorrecta, ingresa nueva nota\n"); // imprime mensaje al usuario break; }//fin del switch }//fin del while printf("\nVeces que ingresaste la nota: \n"); //muestra resultados de las veces printf("A: %d\n", aCount); printf("B: %d\n", bCount); printf("C: %d\n", cCount); printf("D: %d\n", dCount); printf("F: %d\n", fCount); /* Para hacer el promedio yo hice una escala de la siguiente manera A = 100 B = 90 C = 80 D = 70 F = 60 */ multi=(aCount*100)+(bCount*90)+(cCount*80)+(dCount*70)+(fCount*60); //para hacer el promedio multiplicamos el numero de //de veces por la escala antes realizada suma=aCount+bCount+cCount+dCount+fCount; //sumamos el numero notas ingresadas promedio=(multi)/(suma); //Suma de todos los valores ya hechos numericos dividido entre el n˙mero de notas if (promedio == 100) //Si es igual a 100 imprima mensaje printf("El promedio en nota es A\n"); else if (promedio > 90) //Si es mayor que 90 imprima mensaje printf("El promedio en nota es B\n"); else if (promedio > 80) //Si es mayor que 80 imprima mensaje printf("El promedio en nota es C\n"); else if (promedio > 70) //Si es mayor que 70 imprima mensaje printf("El promedio en nota es D\n"); else if (promedio > 60) //Si es mayor que 60 imprima mensaje printf("El promedio en nota es F\n"); printf("El promedio en numeracion es de -> %d \n", promedio); //imprime el promedio en cantidad return 0; //finalizamos programa }
Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.
Cinco puntos para el lab.
ResponderEliminar