Skip to content

Instantly share code, notes, and snippets.

@TrevCan
Last active May 6, 2023 02:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TrevCan/0468d1edd645e22ce77dff440f0e65f8 to your computer and use it in GitHub Desktop.
Save TrevCan/0468d1edd645e22ce77dff440f0e65f8 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
void mostrarTabla(char[30][30],int[30][12]);
float kgBajados(char[30][30],int [30][12],int[]);
void funcionY(char[30][30], int[30][12],float,int[]);
void funcionZ(char[30][30],int [30][12],int[]);
void busquedaPaciente(char[30][30],int [30][12],int[]);
void hacerDiferencia(char[30][30],int [30][12],int[]);
char* toLower(char*);
int main()
{
printf("\tPrograma de obesos anonimos.\n\n");
printf("Seleccione la opcion que desee.\n");
float pp; //pb
int diferencia[30],opcion;
char nombres[30][30]={"Roberto",
"Antonio",
"Norma",
"Santiago",
"Claudia",
"Carlos",
"Hector",
"Fernanda",
"Rocio",
"Patricio",
"Santiago",
"Alberto",
"Ricardo",
"Rebeca",
"Renata",
"Andrea",
"Luis",
"Oscar",
"Enrique",
"Lucas",
"Sofia",
"Abraham",
"Alonso",
"Estevan",
"Carmen",
"Liliana",
"Jorge",
"Eduardo",
"Alejandro",
"Miguel"};
int pesos[35][12]={{102,100,95,94,94,91,88,86,83,83,80,75},
{104,104,101,99,95,96,92,91,91,90,88,85},
{101,100,95,94,94,91,88,86,83,83,80,75},
{100,100,100,97,94,94,91,93,91,90,90,89},
{108,107,105,104,103,102,100,95,94,94,92,90},
{109,108,105,100,94,91,89,88,85,84,80,79},
{105,102,95,94,94,91,88,86,83,83,80,75},
{106,104,94,93,93,91,89,87,85,85,83,80},
{120,115,115,114,114,111,108,106,103,103,110,105},
{110,109,106,106,105,104,104,103,102,101,100,99},
{100,99,97,96,96,95,92,90,89,88,89,89},
{102,101,97,93,90,90,88,85,83,82,80,77},
{103,100,98,94,93,91,89,88,84,84,84,83},
{107,105,103,102,101,100,99,98,97,96,96,93},
{115,110,108,107,106,105,105,105,104,103,102,101},
{101,99,96,95,95,94,93,92,91,91,90,89},
{99,98,95,94,93,91,90,88,86,86,85,85},
{112,110,108,105,106,106,107,105,104,103,102,101},
{113,111,110,109,108,99,98,97,95,95,94,93},
{111,110,108,108,108,108,107,106,106,105,104,104},
{101,100,99,99,99,98,97,97,95,95,95,94},
{108,106,106,106,106,105,105,106,106,105,105,105},
{104,103,104,104,104,103,103,103,103,104,104,104},
{102,101,99,96,93,91,88,86,84,82,80,80},
{102,101,99,98,96,95,93,91,90,89,88,85},
{101,100,97,96,94,91,90,90,89,87,86,86},
{100,101,99,98,94,91,89,89,85,83,80,77},
{107,106,105,105,105,106,106,105,104,104,103,102},
{106,105,101,98,97,96,95,94,92,89,88,86},
{109,106,104,102,100,99,96,95,92,91,90,86},
};
hacerDiferencia(nombres,pesos,diferencia);
do
{
printf("1) Mostar tabla de evolucion de cada uno de los 30 pacientes.\n");
printf("2) Mostrar numero de kgs que bajo cada paciente durante el año ademas del promedio.\n");
printf("3) Pacientes que excedieron la variacion promedio.\n");
printf("4) Nombre de los pacientes que subieron su peso en algun momento del año.\n");
printf("5) Busqueda de paciente\n");
// printf("5) Evolucion personal de algun paciente en especifico(incluye todas las demas opciones)\n");
printf("Para salir presione 0\n\n\n");
printf("Escoja una opcion: ");
opcion=0;
scanf("%i",&opcion);
switch(opcion)
{
case 1:mostrarTabla(nombres,pesos);
break;
case 2:pp=kgBajados(nombres,pesos,diferencia);
break;
case 3:funcionY(nombres,pesos,pp,diferencia);
break;
case 4:funcionZ(nombres,pesos,diferencia);
break;
case 5:
busquedaPaciente(nombres,pesos,diferencia);
break;
case 0: printf("Gracias por utilizar este programa que fue desarrolado por Mario Sanchez y Hector Canizales.\n");
break;
default:printf("Opcion invalida\n");
}
}while(opcion!=0);
}
/* mostrarTabla(nombres,pesos);//este llamado de funcion muestra la tabla de los 30 pacientes
pp=kgBajados(nombres,pesos,diferencia); //este llamado de funcion muestra cuanto bajo cada individuo y devuelve la variacion promedio
funcionY(nombres,pesos,pp,diferencia); //este llamado de funcion muestra los sujetes que excedidron el promedio de la variacion de peso
funcionZ(nombres,pesos,diferencia);//este llamado de funcion muestra los pacientes que subieron de peso en algun momento del año
*/
void mostrarTabla(char nombres[30][30],int pesos[30][12])
{
int i,j;
for(i=0;i<30;i++)
{
printf("%s\n",nombres[i]);
for(j=0;j<12;j++)
{
printf("%d\t",pesos[i][j]);
}
printf("\n");
}
system("pause");
}
float kgBajados(char nombres[30][30],int pesos[30][12],int diferencia[])
{
int i;
//int diferencia[30];
float promedio=0;
for(i=0;i<30;i++)
{
diferencia[i]=pesos[i][0]-pesos[i][11];
printf("\nEl paciente %s logro bajar %d kg's.\n",nombres[i],diferencia[i]);
}
for(i=0;i<30;i++)
{
promedio+=diferencia[i];
}
printf("\n\n\nLa variacion promedio del grupo fue: %.2f%kgs\n\n",promedio/30);
system("pause");
//return diferencia[i];
return promedio/30;
}
void hacerDiferencia(char nombres[30][30], int pesos[30][12], int diferencia[]){
for(int i = 0; i < 30; i++)
{
diferencia[i]=pesos[i][0] - pesos[i][11];
}
}
void funcionY(char nombres[30][30],int pesos[30][12],float pp, int diferencia[])
{
int i;
for(i=0;i<30;i++)
{
if(pp<diferencia[i])
{
printf("El paciente %s sobre pasa la variacion de peso\n\n",nombres[i]);
}
}
system("pause");
}
void funcionZ(char nombres[30][30],int pesos[30][12],int diferencia[])
{
int i,j;
for(i=0;i<30;i++)
{
for(j=0;j<11;j++)
{
if(pesos[i][j]<pesos[i][j+1])
{
printf("\nEl paciente %s incremento su peso en algun momento del año\n",nombres[i]);
}
}
}
}
void busquedaPaciente(char nombres[30][30], int pesos[30][12], int diferencia[]){
printf("BUSQUEDA DE PACIENTES.\n\n"
"1) Busqueda por nombre\n"
"2) Busqueda por peso inicial\n"
"3) Busqueda por peso final\n"
"4) Busqueda por peso perdido\n"
"5) Volver al menu principal\n"
);
int opcion = 0;
printf("Escoja una opcion:\t");
scanf("%i",&opcion);
int none=0;
switch(opcion){
case 1:
printf("Ingrese el nombre a buscar:\t");
char nombreb[30];
scanf("%s", nombreb);
toLower(nombreb);
// printf("s is: %s\n", toLower(nombreb) );
// printf("s is: %s\n", (nombreb) );
for(int i = 0; i < 30; i++){
char copiaNombre[30];
strncpy(copiaNombre, nombres[i], 30);
// printf("nombre es: %s\n", copiaNombre);
toLower(copiaNombre);
if( !strncmp(nombreb, copiaNombre, 30) ){
none++;
// printf("
printf("%s\n",nombres[i]);
for(int j=0;j<12;j++)
{
printf("Mes %d\t", j+1);
}
printf("\n");
for(int j=0;j<12;j++)
{
printf("%d\t",pesos[i][j]);
}
printf("\n");
}
}
printf("\n\n");
break;
case 2:
printf("Ingrese peso inicial:\t");
float pesoInicial = 0;
scanf("%f", &pesoInicial);
printf("\n");
for(int i = 0; i < 30; i++){
if( pesos[i][0] == pesoInicial){
none++;
printf("%s\n",nombres[i]);
for(int j=0;j<12;j++)
{
printf("Mes %d\t", j+1);
}
printf("\n");
for(int j=0;j<12;j++)
{
printf("%d\t",pesos[i][j]);
}
printf("\n");
}
}
printf("\n\n");
break;
case 3:
printf("Ingrese peso final:\t");
float pesoFinal = 0;
scanf("%f", &pesoFinal);
printf("\n");
for(int i = 0; i < 30; i++){
if( pesos[i][11] == pesoFinal){
none++;
printf("%s\n",nombres[i]);
for(int j=0;j<12;j++)
{
printf("Mes %d\t", j+1);
}
printf("\n");
for(int j=0;j<12;j++)
{
printf("%d\t",pesos[i][j]);
}
printf("\n");
}
}
printf("\n\n");
break;
case 4:
printf("Ingrese peso perdido:\t");
float pesoPerdido = 0;
scanf("%f", &pesoPerdido);
printf("\n");
//printf("peso es %f\n", pesoPerdido);
for(int i = 0; i < 30; i++){
//printf("forr\n");
if( diferencia[i] == pesoPerdido){
none++;
printf("%s, perdio %f kg's\n",nombres[i], pesoPerdido);
for(int j=0;j<12;j++)
{
printf("Mes %d\t", j+1);
}
printf("\n");
for(int j=0;j<12;j++)
{
printf("%d\t",pesos[i][j]);
}
printf("\n\n");
}
}
printf("\n\n");
break;
default:
printf("\n\n");
return;
}
if( !none ){
printf("No se encontraron resultados.\n");
printf("\n\n");
}
return;
}
char* toLower(char* s){
for(char* x=s; *x; x++){
*x=tolower(*x);
}
return s;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment