Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: joe en 17 de Noviembre 2016, 16:07
-
Por favor, necesito ayuda con este ejercicio
CREAR un programa que pida 5 nombres y la nota de cada uno de ellos . debe mostrar el nombre de cada alumno y sus nota y su calificación en texto:
19-20 sobresaliente -15-18 notable 10-15 bien 1-9 suspendido
#include <stdio.h>
/* DECLARACION DE VARIABLES */
/* ALUMNO 1 */
char nombre1[80];
float n11, n12, n13, media1;
/* ALUMNO 2 */
char nombre2[80];
float n21, n22, n23, media2;
/* ALUMNO 3 */
char nombre3[80];
float n31, n32, n33, media3;
/* ALUMNO 4 */
char nombre4[80];
float n41, n42, n43, media4;
/* ALUMNO 5 */
char nombre5[80];
float n51, n52, n53, media5;
int main(void)
{
/* PETICION DE INFORMACION */
/* ALUMNO 1 */
printf("Escriba el nombre del alumno 1: ");
gets(nombre1);
printf("\nEscriba la primera calificación del alumno 1: ");
scanf("%f", &n11);
printf("Escriba la segunda calificación del alumno 1: ");
scanf("%f", &n12);
printf("Escriba la tercera calificación del alumno 1: ");
scanf("%f%*c",&n13);
/* Obsérvese que mediante %*c descartamos el \n */
/* ALUMNO 2 */
printf("\nEscriba el nombre del alumno 2: ");
gets(nombre2);
printf("\nEscriba la primera calificación del alumno 2: ");
scanf("%f", &n21);
printf("Escriba la segunda calificación del alumno 2: ");
scanf("%f", &n22);
printf("Escriba la tercera calificación del alumno 2: ");
scanf("%f%*c",&n23);
/* ALUMNO 3 */
printf("\nEscriba el nombre del alumno 3: ");
gets(nombre3);
printf("\nEscriba la primera calificación del alumno 3: ");
scanf("%f", &n31);
printf("Escriba la segunda calificación del alumno 3: ");
scanf("%f", &n32);
printf("Escriba la tercera calificación del alumno 3: ");
scanf("%f%*c",&n33);
/* ALUMNO 4 */
printf("\nEscriba el nombre del alumno 4: ");
gets(nombre4);
printf("\nEscriba la primera calificación del alumno 4: ");
scanf("%f", &n41);
printf("Escriba la segunda calificación del alumno 4: ");
scanf("%f", &n42);
printf("Escriba la tercera calificación del alumno 4: ");
scanf("%f%*c",&n43);
/* ALUMNO 5 */
printf("\nEscriba el nombre del alumno 5: ");
gets(nombre5);
printf("\nEscriba la primera calificación del alumno 5: ");
scanf("%f", &n51);
printf("Escriba la segunda calificación del alumno 5: ");
scanf("%f", &n52);
printf("Escriba la tercera calificación del alumno 5: ");
scanf("%f%*c",&n53);
/* FASE DE CALCULOS */
media1 = (n11 + n12 + n13) / 3.0;
media2 = (n21 + n22 + n23) / 3.0;
media3 = (n31 + n32 + n33) / 3.0;
media5 = (n41 + n42 + n43) / 3.0;
media5 = (n51 + n52 + n53) / 3.0;
/* FASE DE IMPRESION DE RESULTADOS */
printf("\n\nEl alumno 1, D. %18s, tiene la calificación %3.2f.\n",
nombre1, media1);
printf("El alumno 2, D. %18s, tiene la calificación %3.2f.\n",
nombre2, media2);
printf("El alumno 3, D. %18s, tiene la calificación %3.2f.\n",
nombre3, media3);
printf("El alumno 4, D. %18s, tiene la calificación %3.2f.\n",
nombre4, media4);
printf("El alumno 5, D. %18s, tiene la calificación %3.2f.\n",
nombre5, media5);
-
Hola joe.
Haber si te vale este código:
#include <stdio.h>
int main(void)
{
int i = 0;
int j = 0;
char names[5][80];
float notas[5][3];
float medias[5];
char calificacion[20];
for (i = 0; i < 5; i++) {
printf("Escriba el nombre del alumno %d: ", i+1);
scanf("%s", names[i]);
medias[i] = 0;
for (j = 0; j < 3; j++) {
printf("Escriba la %dª calificaci%cn del alumno %d: ", j+1, 162,i+1);
scanf("%f", ¬as[i][j]);
medias[i] += notas[i][j];
}
printf("%f", medias[i]);
medias[i] = medias[i] / j;
}
for (i = 0; i < 5; i++) {
if(medias[i] >= 19 && medias[i] <= 20) {
sprintf(calificacion, "%s", "sobresaliente");
} else if(medias[i] < 19 && medias[i] > 15) {
sprintf(calificacion, "%s", "notable");
} else if(medias[i] >= 10 && medias[i] <= 15) {
sprintf(calificacion, "%s", "bien");
} else if(medias[i] < 10) {
sprintf(calificacion, "%s", "suspenso");
}
printf("\nEl alumno D. %s, tiene una calificaci%cn media de %3.2f, %s.", names[i], 162,medias[i], calificacion);
}
}
He usado bucles, porque en tu código repites muchas sentencias y se pueden ahorrar bastantes líneas.
En este enlace puedes encontrar un curso básico sobre lenguaje C.
https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210
Saludos. ;D