Programa en C usando estructuras selectivas

Podrías ayudarme en saber cual seria la mejor forma de codificar este problema en C usando estructuras selectivas estoy iniciándome en esto:

Un programa en C que dado el peso y edad de un bebé, proporcione si tiene un nivel bajo, medio o alto así como su estatura en centímetros, según la siguiente tabla:
Edad bajo promedio alto talla en cm +/- 6%
Al nacer 2.8 3.1 3.4 50
1 MES 3.6 4.0 4.4 53.5
2 MESES 4.5 5.0 5.5 56.5
Y van cambiando los limites de peso y de talla hasta llegar a los 12 meses; he intentado con selectiva múltiple pero algo hago mal que no selecciona la opción correcta en función de los datos de entrada.
Por ejemplo si ingresamos que es recién nacido y que pesa 5 kilos; los datos de salida deberían ser: "la talla del bebe debe ser de 50cm y su nivel de peso es alto."
Te agradecería muchísimo me ejemplificaras como hacerlo con estos tres datos para poder comprenderlo mejor y continuar con los demás.

1 Respuesta

Respuesta
1

#include <stdio.h>
#include <stdlib.h>
struct gráfica {
int edad;
float peso_bajo;
float peso_promedio;
float peso_alto;
int talla;
}datos[25];
int edad_bebe, talla_bebe;
float peso_bebe;
float peso_bajo_bebe, peso_promedio_bebe, peso_alto_bebe;
void rellenar_datos() {
/* Rellenamos los datos de la tabla */
int i;
for (i = 0; i < 25; i++) {
datos.edad = i;
}
datos[0].peso_bajo = 2.8;
datos[0].peso_promedio = 3.1;
datos[0].peso_alto = 3.4;
datos[0].talla = 50;
}
void entrada_usuario() {
/* Solicitamos datos por parte del usuario */
printf("Introduce la edad del bebe en meses (0 si es recién nacido): ");
scanf("%d", &edad_bebe);
printf("Introduce el peso del bebe en kg: ");
scanf("%f", &peso_bebe);
}
void obtener_valores() {
/* Recorremos la tabla para obtener los valores */
int i;
for (i = 0; i < 25; i++) {
if (edad_bebe == datos.edad) {
peso_bajo_bebe = datos.peso_bajo;
peso_alto_bebe = datos.peso_alto;
peso_promedio_bebe = datos.peso_promedio;
talla_bebe = datos.talla;
}
}
}
void imprimir_resultados() {
printf ("La talla del bebe debe ser %d cm ", talla_bebe);
if (peso_bebe <= peso_bajo_bebe)
printf ("y su nivel de peso es bajo");
if (peso_bebe >= peso_alto_bebe)
printf ("y su nivel de peso es alto");
if ((peso_bajo_bebe < peso_bebe) && (peso_bebe < peso_alto_bebe))
printf("y su nivel de peso es promedio");
}
int main(int argc, char **argv){
rellenar_datos();
entrada_usuario();
obtener_valores();
imprimir_resultados();
}

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas