fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX_PACIENTES 10
  5.  
  6. // Definición de la estructura de Paciente
  7. typedef struct {
  8. int numero;
  9. char nombre[100];
  10. char telefono[20];
  11. int diaNacimiento;
  12. int mesNacimiento;
  13. int anioNacimiento;
  14. char correo[100];
  15. int edad;
  16. float estatura;
  17. float peso;
  18. float IMC;
  19. } Paciente;
  20.  
  21. // Prototipo de función
  22. float calcularIMC(float peso, float estatura);
  23.  
  24. int main() {
  25. Paciente pacientes[MAX_PACIENTES];
  26. int n;
  27.  
  28. printf("¿Cuántos pacientes deseas registrar? (Max 10): ");
  29. scanf("%d", &n);
  30.  
  31. for (int i = 0; i < n; i++) {
  32. // Leer los datos del paciente
  33. printf("\nDatos del paciente #%d\n", i + 1);
  34.  
  35. pacientes[i].numero = i + 1;
  36.  
  37. printf("Nombre: ");
  38. getchar(); // Consume el salto de línea previo
  39. fgets(pacientes[i].nombre, sizeof(pacientes[i].nombre), stdin);
  40. strtok(pacientes[i].nombre, "\n"); // Eliminar el salto de línea
  41.  
  42. printf("Teléfono: ");
  43. fgets(pacientes[i].telefono, sizeof(pacientes[i].telefono), stdin);
  44. strtok(pacientes[i].telefono, "\n");
  45.  
  46. printf("Fecha de nacimiento (dd mm aaaa): ");
  47. scanf("%d %d %d", &pacientes[i].diaNacimiento, &pacientes[i].mesNacimiento, &pacientes[i].anioNacimiento);
  48.  
  49. printf("Correo electrónico: ");
  50. fgets(pacientes[i].correo, sizeof(pacientes[i].correo), stdin);
  51. strtok(pacientes[i].correo, "\n");
  52.  
  53. printf("Edad: ");
  54. scanf("%d", &pacientes[i].edad);
  55.  
  56. printf("Estatura (en metros, ejemplo: 1.70): ");
  57. scanf("%f", &pacientes[i].estatura);
  58.  
  59. printf("Peso (en kg): ");
  60. scanf("%f", &pacientes[i].peso);
  61.  
  62. pacientes[i].IMC = calcularIMC(pacientes[i].peso, pacientes[i].estatura);
  63.  
  64. // Mostrar los datos del paciente y su clasificación de IMC
  65. printf("\nInformación del paciente #%d\n", pacientes[i].numero);
  66. printf("Nombre: %s\n", pacientes[i].nombre);
  67. printf("IMC: %f\n", pacientes[i].IMC);
  68.  
  69. if (pacientes[i].IMC < 18.5) {
  70. printf("Clasificación: Bajo peso\n");
  71. } else if (pacientes[i].IMC >= 18.5 && pacientes[i].IMC < 24.9) {
  72. printf("Clasificación: Peso normal\n");
  73. } else if (pacientes[i].IMC >= 24.9 && pacientes[i].IMC < 29.9) {
  74. printf("Clasificación: Sobrepeso\n");
  75. } else {
  76. printf("Clasificación: Obesidad\n");
  77. }
  78. }
  79.  
  80. return 0;
  81. }
  82.  
  83. float calcularIMC(float peso, float estatura) {
  84. return peso / (estatura * estatura);
  85. }
  86.  
Success #stdin #stdout 0s 5444KB
stdin
Standard input is empty
stdout
¿Cuántos pacientes deseas registrar? (Max 10):