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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda urgente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda urgente  (Leído 2,654 veces)
NoteMeca

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda urgente
« en: 3 Marzo 2022, 19:37 pm »

Chicos, tengo que hacer un programa en C para mañana y no tengo idea de cómo hacerlo.

A la clase de Estructuras de Datos del profesor Serrano asiste un grupo numeroso de alumnos. El profesor es muy exigente y aplica cuatro exámenes durante el semestre. Escribe un programa en C que resuelva lo siguiente:

a) El promedio de calificaciones de cada alumno.
b) El promedio del grupo en cada examen.
c) El examen que tuvo el mayor promedio de calificación.
Dato: ALU [N, 4] (donde ALU es un arreglo bidimensional de tipo real de N filas y cuatro columnas que almacena calificaciones de alumnos, 1 < N < 50).

No encuentro la forma de pedirle al usuario la cantidad de filas (cantidad de estudiantes) y hacer el ciclo for para el mismo, y tambien de que no se me mezcle con las columnas que ya las tengo.
Por favor, si pudieran iluminarme, estoy muy desesperado.


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda urgente
« Respuesta #1 en: 3 Marzo 2022, 19:44 pm »

Chicos, tengo que hacer un programa en C para mañana y no tengo idea de cómo hacerlo.

A la clase de Estructuras de Datos del profesor Serrano asiste un grupo numeroso de alumnos. El profesor es muy exigente y aplica cuatro exámenes durante el semestre. Escribe un programa en C que resuelva lo siguiente:

a) El promedio de calificaciones de cada alumno.
b) El promedio del grupo en cada examen.
c) El examen que tuvo el mayor promedio de calificación.
Dato: ALU [N, 4] (donde ALU es un arreglo bidimensional de tipo real de N filas y cuatro columnas que almacena calificaciones de alumnos, 1 < N < 50).

No encuentro la forma de pedirle al usuario la cantidad de filas (cantidad de estudiantes) y hacer el ciclo for para el mismo, y tambien de que no se me mezcle con las columnas que ya las tengo.
Por favor, si pudieran iluminarme, estoy muy desesperado.

Así de simple es pedir al usuario la cantidad de filas:
Código
  1. int num_filas;
  2. printf("Introduce la cantidad de filas: ");
  3. scanf("%d", &num_filas);
  4.  
  5. printf("La cantidad de filas es: %d", num_filas);

PD: No se hacen tareas.
Si quieres ayuda sobre una parte específica de tu programa, agrega tu código antes.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Tachikomaia


Desconectado Desconectado

Mensajes: 1.217


Superhacker (es broma xD )


Ver Perfil
Re: Ayuda urgente
« Respuesta #2 en: 3 Marzo 2022, 20:27 pm »

Pide que te devuelvan el dinero/tiempo por no enseñarte bien  >:(
En línea

NoteMeca

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda urgente
« Respuesta #3 en: 3 Marzo 2022, 21:24 pm »

Este es mi código, por favor si pudieran revisarlo y decirme qué le falta o qué está mal, disculpen las molestias.
Código
  1. #include <stdio.h>
  2.  
  3. const int MAX = 50;
  4. const int EXA = 4;
  5. void Lectura(float[MAX][EXA], int);
  6. void Funcion1(float[MAX][EXA], int);
  7. void Funcion2(float[MAX][EXA], int);
  8. void main(void)
  9. {
  10.    int NAL;
  11.    float ALU[MAX][EXA];
  12.    do
  13.    {
  14.        printf("Ingrese el número de alumnos del grupo: ");
  15.        scanf("%d", &NAL);
  16.    }
  17.    while (NAL > MAX || NAL < 1);
  18.    Lectura(ALU, NAL);
  19.    Funcion1(ALU, NAL);
  20.    Funcion2(ALU, NAL);
  21. }
  22. void Lectura(float A[][EXA], int N)
  23.  
  24. {
  25.    int I, J;
  26.    for(I=0; I<N; I++)
  27.        for(J=0; J<EXA; J++)
  28.        {
  29.            printf("Ingrese la calificación %d del alumno %d: ", J+1, I+1);
  30.            scanf("%f", &A[I][J]);
  31.        }
  32. }
  33. void Funcion1(float A[][EXA], int T)
  34. {
  35.    int I, J;
  36.    float SUM, PRO;
  37.    for(I=0; I<T; I++)
  38.    {
  39.        SUM = 0;
  40.        for(J=0; J<EXA; J++)
  41.            SUM += A[I][J];
  42.        PRO = SUM / EXA;
  43.        printf("\nEl promedio del alumno %d es: %5.2f", I+1, PRO);
  44.    }
  45. }
  46. void Funcion2(float A[][EXA], int T)
  47. {
  48.    int I, J, MAY;
  49.    float SUM, PRO, MPRO = 0;
  50.    printf("\n");
  51.    for(J=0; J<EXA; J++)
  52.    {
  53.        SUM = 0;
  54.        for(I=0; I<T; I++)SUM += A[I][J];PRO = SUM / T;
  55.        if(PRO > MPRO)
  56.        {
  57.            MPRO = PRO;MAY = J;
  58.        }
  59.        printf("\nEl promedio del examen %d es: %f", J+1, PRO);
  60.        }printf("\n\nEl examen con mayor promedio es: %d \t Promedio: %5.2f", MAY+1, MPRO);
  61. }

MOD: Usar etiquetas de Código GeSHi
« Última modificación: 3 Marzo 2022, 21:26 pm por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda urgente
« Respuesta #4 en: 3 Marzo 2022, 21:54 pm »

El código es mejorable pero a simple vista parece que funciona correctamente. (No lo he ejecutado, sólo lo he revisado por encima)
Si no es así y el programa da algún error o muestra resultados inesperados, agrega un ejemplo de ejecución donde se muestre el error.

Según el enunciado que has puesto en el primer mensaje veo un pequeño error:
Citar
Dato: ALU [N, 4] (donde ALU es un arreglo bidimensional de tipo real de N filas y cuatro columnas que almacena calificaciones de alumnos, 1 < N < 50).
Te piden que el número de filas de la matriz sea exactamente N y no 50. Esto debes hacerlo usando memoria dinámica y al finalizar el programa debes liberar dicha memoria.
Si no has visto el uso de memoria dinámica puedes obviar este detalle aunque siendo precisos con el enunciado, eso es lo que te están pidiendo.

Por si te interesa mejorarlo:
  • La función main() debe ser de tipo int.
    Aunque en ciertas fuentes antiguas puede aparecer la función main() de tipo void. Lo correcto es que sea de tipo int.
    Además es la única función que no necesitas indicar expresamente al final el 'return 0' ya que el compilador lo agregará automáticamente si no lo haces tú.
  • Las variables y funciones se escriben con minúsculas.
    La nomenglatura camelCase (ej: numAlumnos, calcularPromedio()) está aceptada tanto para variables como funciones.
    La nomenglatura snake_case (ej: num_alumnos) está mayormente aceptada para variables que para funciones.
    La nomenglatura SCREAMING_SNAKE_CASE (ej: NUM_ALUMNOS) está única y exclusivamente aceptada para constantes.
    La nomenglatura PascalCase (ej: NumAlumnos) se utiliza para structs.
  • Utiliza funciones bien definidas y nómbralas con nombres que permitan identificar su funcionalidad.
    Qué será mejor? Tener una función que se llame como la primera o como la segunda:
Código
  1. // PRIMERA OPCION
  2. float calcularPromedio(float matriz[][NUM_NOTAS], int numAlumnos, int alumno);
  3. // USO
  4. for(int i = 0; i < numAlumnos; ++i) {
  5.  printf("El promedio del alumno %d es: %.2f", i+1, calcularPromedio(matriz, numAlumnos, i));
  6. }
  7.  
  8. // SEGUNDA OPCION
  9. float funcion1(float A[][EXA], int T);
  10. // USO
  11. // ??? Pues no se como usarla porque no se que parametros tengo que pasarle ya que no son descriptivos
    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
    AYUDA URGENTE
    Java
    mardres 1 3,691 Último mensaje 27 Abril 2007, 16:02 pm
    por Casidiablo
    [AYUDA URGENTE] Me han hackeado con un troyano que se inyecta a la IP [ AYUDA ] « 1 2 3 4 »
    Seguridad
    SexyGoku 34 24,345 Último mensaje 18 Enero 2013, 15:48 pm
    por -- KiLiaN --
    Ayuda urgente (ip)
    Seguridad
    dmr13x 3 2,521 Último mensaje 3 Junio 2013, 21:56 pm
    por Randomize
    Ayuda! Window o Linux? Por que? Ayuda urgente!! « 1 2 »
    Dudas Generales
    demon34 10 7,157 Último mensaje 26 Julio 2016, 23:27 pm
    por PalitroqueZ
    ayuda urgente en instalacion linux kali ayuda porfavor urgentee
    GNU/Linux
    demon34 7 7,521 Último mensaje 29 Julio 2016, 06:02 am
    por engel lex
    WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines