Autor Tema: LenguajeC. Creación y modificación de arrays pedir nota y mostrar calificación C  (Leído 1266 veces)

joe

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
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

Código: [Seleccionar]
#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);
   
« Última modificación: 30 de Noviembre 2016, 20:40 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:programa con array
« Respuesta #1 en: 18 de Noviembre 2016, 10:40 »
Hola joe.

Haber si te vale este código:

Código: [Seleccionar]
#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", &notas[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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".