201 lines
5.8 KiB
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;
|
||
|
|
||
|
|
||
|
}
|