Curso-lenguaje-C/curso-juantxi/Ejercicios/0603kmFootingArray (Sin corregir).c

201 lines
5.8 KiB
C

#include<stdio.h>
#include<stdlib.h> // Se suele emplear para memoria dinámica
/*
Ejercicio 3:
Miguel quiere controlar cuantos kilómetros ha corrido haciendo footing esta semana.
La semana asumimos tiene siete días.
Almacenará los kilómetros (número real) en un array de siete posiciones.
Al comienzo del programa se le pedirá a Miguel que introduzca cuántos kilómetros
ha recorrido cada día. A continuación se mostrará un menú con las siguientes opciones:
1) Mostrar la información de todos los días y todos los kilómetros recorridos cada día
(mostrar el array)
2) Pedirle a Miguel un día (entre 0 y 6, no puede ser cualquier otro valor,
si se trata de un valor no válido se repetirá le pregunta)
y se mostrarán los kms recorridos ese día.
3) Pedirle a Miguel un número determinado de kilómetros y mostrar cuántos días ha superado
esa cantidad de kms.
4) Mostrar el número de kms recorridos en total durante la semana (suma)
5) Mostrar la media de kms por día durante la semana (media de los números del array)
6) Salir
El menú se repetirá hasta que Miguel decida salir.
*/
#define TAM 8
int main(){
/* Variables */
int tablaKM[TAM];
int i, menu, busca, j, km, k;
int dia=1;
int aviso=0;
int total=0;
float media;
/* KM de la semana */
printf("\n_____________\n\n¡HOLA MIGUEL!\n_____________\n");
printf("\nIntroduce los km de esta semana: \n");
for (i=1; i<TAM; i++){
printf("Día %d: ", i);
scanf("%d", &tablaKM[i]);
}
printf("\n");
do{
/* Elegir opción */
printf("\n+++++++++++++++++\n+\tMENÚ\t+\n+++++++++++++++++\n");
printf("\n1 Mostrar la información de todos los días y todos los kilómetros recorridos cada día.");
printf("\n2 Mostrar los km recorridos un día concreto.");
printf("\n3 Mostrar los días que se han superado x km");
printf("\n4 Mostrar el número de kms recorridos en total durante la semana.");
printf("\n5 Mostrar la media de kms por día durante la semana.");
printf("\n6 Salir\n");
printf("\nIntroduce una opción del 1 al 6: ");
fflush(stdin);
scanf("%d", &menu);
/* Condicional case para seleccionar el número */
switch (menu) {
case 1:
printf("\n##################################################\n");
printf("\nLos km recorridos esta semana son: \n");
printf("L\tM\tX\tJ\tV\tS\tD\n");
for(i=1; i<TAM; i++){
printf("%d\t", tablaKM[i]);
}
printf("\n\n##################################################\n");
break;
case 2:
printf("\nDime el día del que quieres saber los km: ");
fflush(stdin);
scanf("%d", &busca);
printf("\n##################################\n");
switch (busca) {
case 1:
printf("\nEl lunes hiciste %d km \t\t:)\n",tablaKM[busca]);
break;
case 2:
printf("\nEl martes hiciste %d km \t:)\n",tablaKM[busca]);
break;
case 3:
printf("\nEl miércoles hiciste %d km \t:)\n",tablaKM[busca]);
break;
case 4:
printf("\nEl jueves hiciste %d km \t:)\n",tablaKM[busca]);
break;
case 5:
printf("\nEl viernes hiciste %d km \t:)\n",tablaKM[busca]);
break;
case 6:
printf("\nEl sábado hiciste %d km \t:)\n",tablaKM[busca]);
break;
case 7:
printf("\nEl domingo hiciste %d km \t:)\n",tablaKM[busca]);
break;
default:
printf("\nNo es un valor correcto\n\n");
}
printf("\n##################################\n");
break;
case 3:
printf("\nDime cuantos km quieres saber si has superado: ");
scanf("%d", &km);
printf("\n######################\n");
printf("\nSuperaste los %d km:", km);
for (j=1; j<TAM; j++){
if(km<=tablaKM[j]) {
aviso=1;
}
if(aviso==1){
printf("\n - El dia %d con %d km.", dia, tablaKM[j]);
aviso=0;
}
dia=dia+1;
}
printf("\n\n######################\n");
break;
case 4:
total=0;
for (k=1; k<TAM; k++){
total=total+tablaKM[k];
}
printf("\n######################\n");
printf("\nEsta semana has hecho %d km.\n\n!ENHORABUENA MIGUEL! ", total);
printf("\n\n######################\n");
break;
case 5:
total=0;
for (k=1; k<TAM; k++){
total=total+tablaKM[k];
}
media=(float)total/7;
printf("\n######################\n");
printf("\nEsta semana tienes %.2f km de media.\n\n!ERES UN CRACK MIGUEL! ", media);
printf("\n\n######################\n");
break;
case 6:
break;
default:
printf("\nNo es un valor correcto\n\n");
}
}while ( menu != 6 );
return 0;
}