elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con el siguiente código de promedio.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con el siguiente código de promedio.  (Leído 3,260 veces)
Adrian Mendiola

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con el siguiente código de promedio.
« en: 7 Septiembre 2020, 18:36 pm »

Buenos días. de su apoyo colegas, del siguiente código de programación llevo días pero no he podido, requiero añadir que me muestre de la lista de 10 calificaciones cual es la mas alta y que me pregunte si deseo hacer otra operación o salir.

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int main()
  5. {
  6.    int f,may,men;
  7.    float calificaciones[10];
  8.    float suma,promedio;
  9.    printf("Buenvenido al programa para calcular promedio\n\n");
  10.  
  11.    printf("Ingrese las 10 calificaciones a promediar:  \n");
  12.    for (f=0; f<10; f++)
  13.    {
  14.    printf("Ingrese la calificacion:  ");
  15.        scanf("%f",&calificaciones[f]);
  16.    }
  17.    suma=0;
  18.    for(f=0; f<10; f++)
  19.    {
  20.        suma=suma+calificaciones[f];
  21.    }
  22.    promedio=suma/10;
  23.    printf("Promedio:  ");
  24.    printf("%0.2f",promedio);
  25.    printf("\n");
  26.  
  27.    may=0;
  28.    men=0;
  29.    for(f=0; f<10; f++)
  30.    {
  31.        if (calificaciones[f] > promedio)
  32.        {
  33.            may++;
  34.        }
  35.        else
  36.        {
  37.            if (calificaciones[f] < promedio)
  38.            {
  39.                men++;
  40.            }
  41.        }
  42.    }
  43.    printf("Cantidad de personas mayores al promedio:");
  44.    printf("%i",may);
  45.    printf("\n");
  46.  
  47.    getch();
  48.    return 0;
  49. }


MOD: El código debe ir entre etiquetas de Código GeSHi


« Última modificación: 8 Septiembre 2020, 20:24 pm por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda con el siguiente código de promedio.
« Respuesta #1 en: 8 Septiembre 2020, 20:57 pm »

Entiendo que la parte que tienes hecha funciona correctamente aunque te pongo un par de consejos:
  • No utilices la biblioteca <conio.h>. No es una biblioteca estándar y puede dar problemas en algunos sistemas. Para lo único que lo utilizas es para la función getch(); así que en su lugar puedes utilizar la función getchar(); que pertenece a <stdio.h>.
  • En vez de poner números directamente como el 10 en este caso, declara constantes. Esto hace que el código sea más fácil de modificar pues solo tendrás que cambiar el valor de la variable una vez y no cada vez que aparezca ese número:
Código
  1. #define SIZE 10
  2. int main(){
  3.  int array[SIZE]; // Array de longitud 10
  4. }

  • Para acumular una suma (o cualquier operación) en una misma variable puedes sustituir:
Código
  1. suma = suma + numero;
por:
Código
  1. suma += numero;

  • Solo utilizas el número de notas mayores al promedio por lo que no necesitas calcular cuántas son menores a este.


Y ahora tu problema: para mostrar la nota más alta necesitas recorrer el array completo e ir guardando la nota más alta. Para ello guardas en una variable <notaMayor> (por ejemplo) el contenido de <calificaciones[0]> y luego con un for() desde 1 hasta el último elemento, si <calificaciones[n]> es mayor que <notaMayor> pues guardas ese nuevo valor.

Para que te pregunte si hacer más operaciones necesitas un bucle do-while que suele ir acompañado en este caso con un menú (switch) con las opciones. Te pongo un ejemplo para que lo adaptes:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h> // Para la funcion rand()
  3.  
  4. #define SIZE 5
  5.  
  6. int main(){
  7.    int numeros[SIZE];
  8.    int opcion;
  9.    char repetir = '';
  10.    do{
  11.        printf("\nElige una opcion:\n - 1. Rellenar array\n - 2. Mostrar array\nOpcion: ");
  12.        scanf("%d", &opcion);
  13.  
  14.        switch(opcion){
  15.            case 1:
  16.                for(int i = 0; i < SIZE; ++i) // Usando SIZE puedes cambiar la longitud del array cambiando solo su valor en el #define
  17.                    numeros[i] = rand() % 100; // Numero aleatorio entre 0 y 99
  18.                break;
  19.            case 2:
  20.                printf("\nLos numeros del array son: ");
  21.                for(int i = 0; i < SIZE; ++i)
  22.                    printf("%d ", numeros[i]);
  23.                printf("\n");
  24.                break;
  25.        }
  26.        printf("Desea salir? [s/n]: ");
  27.        repetir = getchar();
  28.    }   while(repetir != 's' && repetir != 'S');
  29.  
  30.    printf("\nSaliendo del programa... Pulse ENTER\n");
  31.    getchar();
  32.    return 0;
  33. }

PD: Este ejemplo no intenta mostrar la manera de generar números aleatorios sino únicamente cómo usar un menú con opciones y un bucle para elegir si desea salir o no.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Código que calcula Promedio Varianza y Desviación estándar (Python)
Scripting
XD YO 0 21,271 Último mensaje 13 Marzo 2010, 02:08 am
por XD YO
Ayuda encontre en mi sitio web una imagen gif con el siguiente codigo php
Seguridad
priester007 1 2,806 Último mensaje 29 Noviembre 2013, 16:46 pm
por MasterAndHack
C# me explican el siguiente codigo¿?
.NET (C#, VB.NET, ASP)
andrecid 2 2,014 Último mensaje 11 Agosto 2014, 19:43 pm
por andrecid
Ayuda con codigo que saca promedio de estudiantes
Programación C/C++
Supermanxd 1 2,076 Último mensaje 23 Noviembre 2015, 03:30 am
por 0xFer
Necesito ayuda con el siguiente codigo
Programación C/C++
JuanSR05 1 2,829 Último mensaje 5 Octubre 2022, 05:12 am
por Mr.E
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines