Lenguaje de programación C

C – Ejercicio con matriz de calificaciones, alumnos, materias y promedios

En este post de programación en C, también conocido como ANSI C vamos a resolver un ejercicio propuesto que trabaja con matrices, calificaciones, alumnos, materias y promedios. Es un ejercicio que voy a resolver, el mismo dice así:

Escriba un programa que tenga implementadas las siguientes funciones:

  1. Que reciba una matriz de nombre calificaciones y la llene de manera aleatoria con calificaciones de n alumnos y m materias. En la última columna de la matriz se calculará el promedio de cada alumno respectivamente.
  2. Reciba la matriz anterior y una matriz con los nombres de los alumnos. La función imprimirá los datos de nombres y calificaciones de cada alumno, organizados como una tabla. Así mismo, calculará e imprimirá el menor y mayor promedio correspondiente al alumno o los alumnos respectivamente.

Veamos entonces el código

Explicación del algoritmo

Vamos a dividir los problemas. Primero veamos el de llenar la matriz de manera aleatoria, para ello vamos a hacer un ciclo for que va a recorrer toda la matriz y va a ir colocando un valor aleatorio en cada posición.

Después vamos a definir la segunda función que recibe la matriz para imprimirla, usando las alineaciones de printf para dibujar la tabla y los algoritmos para obtener el menor y mayor.

He colocado los enlaces anteriores para que profundices en caso de que no entiendas algo explicado aquí.

Definiendo matriz y constantes

Veamos la definición de constantes usando #define, veremos por ejemplo la cantidad de materias, alumnos, longitudes, etcétera.

See the gist on github.

Recuerda que en este caso puedes cambiar los valores a tu gusto. Fíjate en que estamos definiendo también la calificación máxima y mínima para el caso de los números aleatorios. Por cierto, la función que vamos a usar es la siguiente:

See the gist on github.

Llenar matriz de manera aleatoria

Ahora veamos la función que rellena la matriz con calificaciones aleatorias y coloca el promedio de las mismas en la última columna:

See the gist on github.

El promedio es calculado en la línea 14. Además, la calificación es asignada en la línea 11.

Antes de imprimir tabla: imprimir línea

Antes de pasar al segundo requerimiento, veamos una función que nos va a ayudar a imprimir una línea que va a separar la tabla. Te repito que si quieres aprender más sobre cómo alinear o rellenar al usar printf veas el enlace que dejé anteriormente.

See the gist on github.

Básicamente esa función del lenguaje C hará que se imprima una línea como la siguiente:

+----------+--------+--------+--------+--------+

Imprimir tabla de calificaciones con promedios

Ahora sí pasemos al segundo requisito. En este caso simplemente se trata de imprimir los valores y acomodarlos de una manera limpia. También debemos calcular el menor promedio y el mayor promedio, así como el nombre del alumno al que le pertenece cada uno:

See the gist on github.

Solo por si no lo sabes, usamos memcpy para asignar una cadena, ya que en C no podemos hacer algo como:

cadenaDeclaradaAnteriormente = "nueva cadena";

Poniendo todo junto

Recuerda que debes invocar a srand pasándole un valor distinto en la ejecución del programa para que los valores aleatorios sean distintos. Como sea, la función main junto con las demás funciones queda así:

See the gist on github.

Yo lo he ejecutado y funciona perfectamente:

Ejercicio en C – Calificaciones, materias, promedios y alumnos con matrices

También puedes ejecutar el ejercicio en este enlace. Por otro lado, puedes leer más sobre C en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

1 hora hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

2 horas hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

5 horas hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

9 horas hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

4 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

5 días hace

Esta web usa cookies.