diff --git a/Ejercicios/0100holamundo b/Ejercicios/0100holamundo new file mode 100755 index 0000000..9381976 Binary files /dev/null and b/Ejercicios/0100holamundo differ diff --git a/Ejercicios/0100holamundo.c b/Ejercicios/0100holamundo.c new file mode 100644 index 0000000..a56413b --- /dev/null +++ b/Ejercicios/0100holamundo.c @@ -0,0 +1,5 @@ +#include + +int main(){ + printf("Hola mundo!"); +} \ No newline at end of file diff --git a/Ejercicios/0101RecogeDatos b/Ejercicios/0101RecogeDatos new file mode 100755 index 0000000..91d7930 Binary files /dev/null and b/Ejercicios/0101RecogeDatos differ diff --git a/Ejercicios/0101RecogeDatos.c b/Ejercicios/0101RecogeDatos.c new file mode 100644 index 0000000..65b5dd4 --- /dev/null +++ b/Ejercicios/0101RecogeDatos.c @@ -0,0 +1,17 @@ +#include + +int main(){ + + int numero1; + int numero2; + int numero3, numero4, numero5; + + numero1=23; + numero2=56; + + printf("\nIntroduce un numero entero: "); + scanf("%d", &numero3); + + printf("\nLav ariable numero1 tiene un valor %d, numero2 tiene un valor %d y numero3 %d", numero1, numero2, numero3); + +} \ No newline at end of file diff --git a/Ejercicios/0102calcularArea b/Ejercicios/0102calcularArea new file mode 100755 index 0000000..0a5c463 Binary files /dev/null and b/Ejercicios/0102calcularArea differ diff --git a/Ejercicios/0102calcularArea.c b/Ejercicios/0102calcularArea.c new file mode 100644 index 0000000..e736578 --- /dev/null +++ b/Ejercicios/0102calcularArea.c @@ -0,0 +1,31 @@ +#include + +#define PI 3.14 + +int main(){ + + int numero1; + int numero2; + int numero3, numero4, numero5; + float radio; + float area; + + numero1=23; + numero2=56; + /* + + printf("\nIntroduce un numero entero: "); + scanf("%d", &numero3); + + printf("\nLav ariable numero1 tiene un valor %d, numero2 tiene un valor %d y numero3 %d", numero1, numero2, numero3); + */ + + printf("\nIndica el radio de una circunferencia:"); + scanf("%f", &radio); + + area=radio*radio*PI; + + printf("\nEl area de la circunferencia de radio %f es %.3f", radio, area); + + +} \ No newline at end of file diff --git a/Ejercicios/0103pide2NumerosYCalcula b/Ejercicios/0103pide2NumerosYCalcula new file mode 100755 index 0000000..596aa71 Binary files /dev/null and b/Ejercicios/0103pide2NumerosYCalcula differ diff --git a/Ejercicios/0103pide2NumerosYCalcula.c b/Ejercicios/0103pide2NumerosYCalcula.c new file mode 100644 index 0000000..2c55d90 --- /dev/null +++ b/Ejercicios/0103pide2NumerosYCalcula.c @@ -0,0 +1,22 @@ +#include + +int main(){ + + int numero1, numero2; + int suma, diferencia, producto, division; + + + printf("\nIntroduce un numero entero: "); + scanf("%d", &numero1); + + printf("\nIntroduce el segundo numero entero: "); + scanf("%d", &numero2); + + suma = numero1 + numero2; + diferencia=numero1-numero2; + producto = numero1*numero2; + division = numero1/numero2; + + printf("\nLa suma de los valores introducidos da un resultado de: %d , \nLa resta de los valores introducidos da un resultado de: %d \nLa multiplicación de los valores introducidos da un resultado de: %d \nLa división de los valores introducidos da un resultado de: %d \n\n", suma, diferencia, producto, division); + +} \ No newline at end of file diff --git a/Ejercicios/0104compara3Numeros b/Ejercicios/0104compara3Numeros new file mode 100755 index 0000000..a27aae0 Binary files /dev/null and b/Ejercicios/0104compara3Numeros differ diff --git a/Ejercicios/0104compara3Numeros.c b/Ejercicios/0104compara3Numeros.c new file mode 100644 index 0000000..a0dee4c --- /dev/null +++ b/Ejercicios/0104compara3Numeros.c @@ -0,0 +1,32 @@ +#include + +int main(){ + + /* Variables */ + int numero1, numero2, numero3; + + /* Solicitamos valores para las variables */ + printf("\nIntroduce un número entero: "); + scanf("%d", &numero1); + + printf("\nIntroduce el segundo número entero: "); + scanf("%d", &numero2); + + printf("\nIntroduce el tercer número entero: "); + scanf("%d", &numero3); + + /* Condicional para seleccionar el número mayor */ + if (numero1 > numero2 && numero1 > numero3) { + printf("\nEl primer número introducido es el mayor: %d\n\n", numero1); + } + else if (numero2 > numero1 && numero2 > numero3) { + printf("\nEl segundo número introducido es el mayor: %d\n\n", numero2); + } + else if (numero3 > numero1 && numero3 > numero2) { + printf("\nEl tercer número introducido es el mayor: %d\n\n", numero3); + } + else { + printf("\nHas repetido alguno de los numeros\n"); + } + +} \ No newline at end of file diff --git a/Ejercicios/0201pedirEdad b/Ejercicios/0201pedirEdad new file mode 100755 index 0000000..d8aa4b5 Binary files /dev/null and b/Ejercicios/0201pedirEdad differ diff --git a/Ejercicios/0201pedirEdad.c b/Ejercicios/0201pedirEdad.c new file mode 100644 index 0000000..79949bc --- /dev/null +++ b/Ejercicios/0201pedirEdad.c @@ -0,0 +1,24 @@ +#include + +int main(){ + + /* Variables */ + int edad; + + /* Solicitamos valores para las variables */ + printf("\nIntroduce un número entero: "); + scanf("%d", &edad); + + /* Condicional para seleccionar el número mayor */ + if (edad >= 18) { + printf("\nEres mayor de edad: %d años\n\n", edad); + } + else if (edad< 18 && edad>0) { + printf("\nEres menor de edad: %d años\n\n", edad); + } + else if(edad>=99) { + printf("\nQue longevo con %d años\n\n", edad); + }else{ + printf("\nHas introducido un número negativo\n\n"); + } +} \ No newline at end of file diff --git a/Ejercicios/0202menuOperAritm b/Ejercicios/0202menuOperAritm new file mode 100755 index 0000000..7d6ec81 Binary files /dev/null and b/Ejercicios/0202menuOperAritm differ diff --git a/Ejercicios/0202menuOperAritm.c b/Ejercicios/0202menuOperAritm.c new file mode 100644 index 0000000..dcd3b47 --- /dev/null +++ b/Ejercicios/0202menuOperAritm.c @@ -0,0 +1,48 @@ +#include +#include + +int main(){ + + /* Variables */ + int menu, num1, num2; + float potencia; + + /* Solicitamos valores para las variables */ + printf("\nIntroduce el primer numero para operar\n"); + scanf("%d", &num1); + printf("\nIntroduce el segundo numero para operar\n"); + scanf("%d", &num2); + + /* Elegir opción */ + printf("\nIntroduce una opción del 1 al 5: "); + printf("\n1 Suma "); + printf("\n2 División"); + printf("\n3 diferencia"); + printf("\n4 producto"); + printf("\n5 potencia\n"); + + scanf("%d", &menu); + + /* Condicional case para seleccionar el número mayor */ + switch (menu) { + case 1: + printf("\nEl resultado de la suma es: %d\n", num1+num2); + break; + case 2: + printf("\nEl resultado de la división es: %d\n", num1/num2); + break; + case 3: + printf("\nEl resultado de la resta es: %d\n", num1-num2); + break; + case 4: + printf("\nEl resultado de la multiplicación es: %d\n", num1*num2); + break; + case 5: + potencia=pow(num1, num2); + printf("\nEl resultado de la división es: %f\n", potencia); + break; + + default: + printf("\nNo es un valor correcto\n\n"); + } +} \ No newline at end of file diff --git a/Ejercicios/0203saludaXVeces b/Ejercicios/0203saludaXVeces new file mode 100755 index 0000000..cc34b76 Binary files /dev/null and b/Ejercicios/0203saludaXVeces differ diff --git a/Ejercicios/0203saludaXVeces.c b/Ejercicios/0203saludaXVeces.c new file mode 100644 index 0000000..28e3c65 --- /dev/null +++ b/Ejercicios/0203saludaXVeces.c @@ -0,0 +1,17 @@ +#include + +int main() { + int final, contador; + + /* Solicitamos número de veces de repetición */ + printf("\nIntroduce un número entero: \n"); + scanf("%d", &final); + + + for (contador=1; contador<=final; contador=contador+1) { + puts("\nhola"); + } + + return 0; + +} \ No newline at end of file diff --git a/Ejercicios/0204TablaMultipli b/Ejercicios/0204TablaMultipli new file mode 100755 index 0000000..87a4389 Binary files /dev/null and b/Ejercicios/0204TablaMultipli differ diff --git a/Ejercicios/0204TablaMultipli.c b/Ejercicios/0204TablaMultipli.c new file mode 100644 index 0000000..3e6accf --- /dev/null +++ b/Ejercicios/0204TablaMultipli.c @@ -0,0 +1,14 @@ +#include + +int main() { + int num, contador; + printf ("\nIndica el número de la tabla: \n"); + scanf ("%d", &num); + puts(""); + printf("TABLA DEL %d \n", num); + + for (contador=1; contador<=10; contador++) { + printf ("%d * %d = %d \n",num, contador, num*contador); + } + return 0; +} \ No newline at end of file diff --git a/Ejercicios/0205contarDesdeXHasta100 b/Ejercicios/0205contarDesdeXHasta100 new file mode 100755 index 0000000..e305843 Binary files /dev/null and b/Ejercicios/0205contarDesdeXHasta100 differ diff --git a/Ejercicios/0205contarDesdeXHasta100.c b/Ejercicios/0205contarDesdeXHasta100.c new file mode 100644 index 0000000..990b914 --- /dev/null +++ b/Ejercicios/0205contarDesdeXHasta100.c @@ -0,0 +1,33 @@ +#include + +int main () +{ + /* variables */ + int contador; + + inicio: + + printf ("\nIndica donde empieza a contar hasta 100: \n"); + scanf ("%d", &contador); + puts(""); + printf("CONTAMOS DESDE EL %d \n", contador); + + /* Control de flujo*/ + + if(contador>100){ + printf("%d no es un número menor de 100\n",contador); + goto inicio; + + } else { + + /* bucle */ + + while( contador <= 100 ) + { + printf("%d\n", contador); + contador++; + } + + return 0; + } +} \ No newline at end of file diff --git a/Ejercicios/0205contarDesdeXHasta100singoto b/Ejercicios/0205contarDesdeXHasta100singoto new file mode 100755 index 0000000..b1336aa Binary files /dev/null and b/Ejercicios/0205contarDesdeXHasta100singoto differ diff --git a/Ejercicios/0205contarDesdeXHasta100singoto.c b/Ejercicios/0205contarDesdeXHasta100singoto.c new file mode 100644 index 0000000..9971bde --- /dev/null +++ b/Ejercicios/0205contarDesdeXHasta100singoto.c @@ -0,0 +1,37 @@ +#include + +int main () +{ + /* variables */ + int contador; + + // inicio: + + do{ + printf ("\nIndica donde empieza a contar hasta 100: \n"); + scanf ("%d", &contador); + + if(contador>100){ + printf("\nDebes introducir un numero menor que 100"); + } + + }while(contador>100); + puts(""); + printf("CONTAMOS DESDE EL %d \n", contador); + + /* Control de flujo*/ + + + + + /* bucle */ + + while( contador <= 100 ) + { + printf("%d\n", contador); + contador++; + } + + return 0; + +} \ No newline at end of file diff --git a/Ejercicios/0206contarParesHasta100 b/Ejercicios/0206contarParesHasta100 new file mode 100755 index 0000000..d730dd3 Binary files /dev/null and b/Ejercicios/0206contarParesHasta100 differ diff --git a/Ejercicios/0206contarParesHasta100.c b/Ejercicios/0206contarParesHasta100.c new file mode 100644 index 0000000..bf97903 --- /dev/null +++ b/Ejercicios/0206contarParesHasta100.c @@ -0,0 +1,40 @@ +#include + +int main () { + + /* variables */ + int contador,final=100, menu; + + /* Menú de opciones a y b */ + pregunta: + + printf("Elige una opción:\n"); + printf("1 --> Impar\n"); + printf("2 --> Par\n\n"); + + scanf("%d", &menu); + + /* Opción par o impar */ + switch (menu) { + case 1: + contador=1; + puts("NÚMEROS IMPARES HASTA 100\n"); + break; + case 2: + contador=0; + puts("NÚMEROS PARES HASTA 100\n"); + break; + default: + printf("\nNo es una opción\n\n"); + goto pregunta; + } + + + /* bucle */ + while(contador<=final) { + printf("%d\n", contador); + contador=contador+2; + } + + return 0; +} \ No newline at end of file diff --git a/Ejercicios/0207numHasta0 b/Ejercicios/0207numHasta0 new file mode 100755 index 0000000..b093edb Binary files /dev/null and b/Ejercicios/0207numHasta0 differ diff --git a/Ejercicios/0207numHasta0.c b/Ejercicios/0207numHasta0.c new file mode 100644 index 0000000..e093060 --- /dev/null +++ b/Ejercicios/0207numHasta0.c @@ -0,0 +1,14 @@ +#include + +/* +PROGRAMA QUE LEE CUALQUIER NÚMERO ENTERO INDEFINIDAMENTE +HASTA QUE EL USUARIO INTRODUZCA UN CERO. +*/ + +int main(){ + int num; + + do { + scanf("%d",&num); + } while (num != 0); +} \ No newline at end of file diff --git a/Ejercicios/0208numHasta0ySuma b/Ejercicios/0208numHasta0ySuma new file mode 100755 index 0000000..ebfb4bb Binary files /dev/null and b/Ejercicios/0208numHasta0ySuma differ diff --git a/Ejercicios/0208numHasta0ySuma.c b/Ejercicios/0208numHasta0ySuma.c new file mode 100644 index 0000000..11a5a8b --- /dev/null +++ b/Ejercicios/0208numHasta0ySuma.c @@ -0,0 +1,16 @@ +#include +/* +PROGRAMA QUE LEE NÚMEROS HASTA LLEGAR A UN CERO +Y LUEGO MUESTRA LA SUMA DE TODOS LOS NÚMEROS LEÍDOS +*/ + +int main(){ + int x; + int suma=0; + + do { + scanf("%d",&x); + suma+=x; + } while ( x != 0); + printf("La suma es: %d", suma); +} \ No newline at end of file diff --git a/Ejercicios/0301argumentos b/Ejercicios/0301argumentos new file mode 100755 index 0000000..1596aa4 Binary files /dev/null and b/Ejercicios/0301argumentos differ diff --git a/Ejercicios/0301argumentos.c b/Ejercicios/0301argumentos.c new file mode 100644 index 0000000..c38546d --- /dev/null +++ b/Ejercicios/0301argumentos.c @@ -0,0 +1,31 @@ +#include +#include + +int main(int argc, char *argv[]){ + + int i; + int num1; + int num2; + + + printf("\nHaremos un programa para ver como funcionan los argumentos de entrada del programa"); + + printf("\nHemos recibido %d argumentos", argc); + + for(i=0;i +#include +#include + +int main(int argc, char *argv[]){ + + char cadena[20]; + int numero; + + + printf("\nIntroduce un número para mostrar: "); + scanf("%d", &numero); + + printf("\nEl número en decimal es %d", numero); + printf("\nEl número en octal es %o", numero); + printf("\nEl número en hexadecimal es %x", numero); + + +// Opción 1 + // itoa(numero, cadena, 2); + + printf("En binario es : %s"); + +/* Opción 2 + + // * C++ version 0.4 char* style "itoa": + // * Written by Lukás Chmela + // * Released under GPLv3. + + int base = 2; + + char* itoa(int numero, char* cadena, int base) { + // check that the base if valid + if (base < 2 || base > 36) { *cadena = '\0'; return cadena; } + + char* ptr = cadena, *ptr1 = cadena, tmp_char; + int tmp_value; + + do { + tmp_value = numero; + numero /= base; + *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - numero * base)]; + } while ( numero ); + + // Apply negative sign + if (tmp_value < 0) *ptr++ = '-'; + *ptr-- = '\0'; + while(ptr1 < ptr) { + tmp_char = *ptr; + *ptr--= *ptr1; + *ptr1++ = tmp_char; + } + return cadena; + } +*/ + + +/* Opción 3 +*/ + + + int bin[8]; + int aux; + + printf("\nEl número en binario es "); + + for (aux = 7; aux >= 0; aux--) { + if (numero % 2 == 0) + bin[aux] = 0; + else + bin[aux] = 1; + numero = numero / 2; + } + + for (aux = 0; aux < 8; aux++) + + printf("%d ", bin[aux]); + printf("\n"); + + + return 0; + + +} \ No newline at end of file diff --git a/Ejercicios/0401paresEntreDosNum b/Ejercicios/0401paresEntreDosNum new file mode 100755 index 0000000..ff1820f Binary files /dev/null and b/Ejercicios/0401paresEntreDosNum differ diff --git a/Ejercicios/0401paresEntreDosNum.c b/Ejercicios/0401paresEntreDosNum.c new file mode 100644 index 0000000..7710e7b --- /dev/null +++ b/Ejercicios/0401paresEntreDosNum.c @@ -0,0 +1,30 @@ +#include + +int main (){ + + int num1, num2, menor, mayor, i; + + printf("\nIntroduce un número donde empieza el conteo de pares: "); + scanf("%d", &num1); + + printf("\nIntroduce un número para finalizar el conteo de pares: "); + scanf("%d", &num2); + + if(num1 + +int main (){ + + int num; + int suma=0; + float media; + int contador=0; + + printf("\nSi el número que introduces es par"); + + do{ + printf("\nIntroduce un número: "); + scanf("%d", &num); + + suma=suma+num; + + contador++; + + } while (num%2==0); + + media=(float)suma/contador; + printf("%f ",media); + + +} \ No newline at end of file diff --git a/Ejercicios/0501primos b/Ejercicios/0501primos new file mode 100755 index 0000000..5ab9664 Binary files /dev/null and b/Ejercicios/0501primos differ diff --git a/Ejercicios/0501primos.c b/Ejercicios/0501primos.c new file mode 100644 index 0000000..7a439d9 --- /dev/null +++ b/Ejercicios/0501primos.c @@ -0,0 +1,34 @@ +#include + +int main (){ + + // Variables + int numero=0; + int divisores=0; + int primo=0; // primo = 0 no primo = 1 + // Solicitar numero entero hasta valor -1 + do + { + printf("\nIntroduce un número, si es primo se cerrará el programa: "); + scanf(" %d",&numero); + if(numero!=-1 && numero>0) + { + // el numero es mayor que 0, comprobar si es primo + primo=0; + divisores=2; + while(divisores + +int main (){ + + // Variables + int numero1,numero2; + int amigos=0; + + int divisores1; //aquí acumulamos la suma de los divisores del primer número + int divisores2; + + int i; + + // + printf("\nComprueba si dos números son amigos"); + printf("\n###########"); + printf("\n"); + + + // Solicitar numero entero hasta valor -1 + do { + printf("\nIntroduce un número: "); + scanf(" %d",&numero1); + + printf("\nIntroduce otro número: "); + scanf(" %d",&numero2); + //if(numero1!=-1 && numero1>0 && numero2!=-1 && numero2>0){ + if(numero1<=0 || numero2<=0){ + // Comprobación + // + printf("\nUno de los dos numeros (o los dos) no es positivo"); + + + }else{ + divisores1=0; + for(i=1; i + + +int main (){ + + /* Variables */ + int numero1,numero2,numero3; + int menu; + int i,a; + + /* Enunciado*/ + printf("\nOpera con 3 numeros en un menú"); + printf("\n###########"); + printf("\n"); + + + /* Solicitar numeros */ + + printf("\nIntroduce un número: "); + scanf("%d",&numero1); + + printf("\nIntroduce otro número: "); + scanf("%d",&numero2); + + printf("\nIntroduce el tercer número: "); + scanf("%d",&numero3); + + + + /* Elegir opción */ + printf("\n### MENÚ ###"); + printf("\n1 Suma el primer y segundo número."); + printf("\n2 Multiplicar el segundo con el tercero."); + printf("\n3 Mostrar los tres números en orden."); + printf("\n4 Comprobar si el primero es primo."); + printf("\n5 Comprobar si el segundo es un número perfecto."); + printf("\n5 Salir\n"); + + printf("\nIntroduce una opción del 1 al 6: "); + scanf("%d", &menu); + + /* menu switch */ + + switch (menu){ + case 1: + // sumar el primer y segundo número + printf("\nEl resultado de la suma entre el primer y segundo numero es: %d\n", numero1+numero2); + break; + + case 2: + // multiplicar el segundo con el tercer número + + printf("\nEl resultado de la multiplicación entre el segundo con el tercer número es: %d\n", numero2*numero3); + break; + + case 3: + // ordenar los números + if(numero1 + +#define TAM 5 + +int main(){ + + + int vector[TAM]; + int i; + int j; + int temp; + + + for (i=0; i vector[j+1])//Condicion mayor-menor + { + temp=vector[j]; + vector[j]=vector[j+1]; + vector[j+1]=temp; + } + } +} + +printf("\nY el vector ordenado sería: "); +for(i=0; i +#include // Se suele emplear para memoria dinámica + +/* +Ejercicio 1: +Sobre un array de números enteros de dimensión 10 se pide: +- cargar el array +- mostrarlo +- buscar y comprobar si un número pedido al usuario se encuentra o no en el array +(opcional: indicar su posición) +- pedir un número al usuario y si está en el array eliminarlo +(en caso de que se repita, solamente eliminará la última ocurrencia) + +*/ + + +#define TAM 10 + +int main(){ + + int vector[TAM]; + int i; + int busca; + int posicion=0; + int aviso=0; + int temp; + + printf("\nVamos a cargar un array de %d posiciones: \n", TAM); + + for (i=0; i +#include // Se suele emplear para memoria dinámica + +/* +Ejercicio 1: +Sobre un array de números enteros de dimensión 10 se pide: +- cargar el array +- mostrarlo +- buscar y comprobar si un número pedido al usuario se encuentra o no en el array +(opcional: indicar su posición) +- pedir un número al usuario y si está en el array eliminarlo +(en caso de que se repita, solamente eliminará la última ocurrencia) + +*/ + + +#define TAM 10 + +int main(){ + + int vector[TAM]; + int i; + int busca; + int posicion=0; + int aviso=0; + int temp; + + printf("\nVamos a cargar un array de %d posiciones: \n", TAM); + + for (i=0; i +#include // Se suele emplear para memoria dinámica + +/* +Ejercicio 2: +Sobre un array de números enteros de dimensión 10 se pide: +- cargar el array de números pero por cada número introducido +se debe comprobar que no está ya contenido en el array.* +*/ + +#define TAM 10 + +int main(){ + + int vector[TAM]; + int i; + + for (i=0; i +#include // Se suele emplear para memoria dinámica + +/* +Ejercicio 2: +Sobre un array de números enteros de dimensión 10 se pide: +- cargar el array de números pero por cada número introducido +se debe comprobar que no está ya contenido en el array.* +*/ + +#define TAM 10 + +int main(){ + + int vector[TAM]; + int i, j, repetido; + +// for (i=0; i +#include // 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 +#include // 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 + +//prototipos +void opcion2 (int tablaKM[]); +int opcion4(int tablaKM[]); + +int main(){ + + + /* Variables */ + int tablaKM[TAM]; + int i, menu, 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; i7){ + printf("\nPájaro, ese valor no es correcto, tiene que ser entre 1 y 7 inclusive"); + } + + }while(busca<1 || busca>7); + + 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"); +} + +int opcion4(int tablaKM[]){ + int totalKM; + int k; + totalKM=0; + for (k=1; k +#include + + +/* +Nos han pedido un pequeño programa escrito en C para controlar la afluencia de una sala de cine en +la que las butacas se distribuyen en filas y asientos (los asientos serían las columnas). Para ello +utilizaremos un array bidimensional que abarque toda la sala. El encargado nos ha dicho que la sala +cuenta con 10 filas y 8 asientos por cada fila (el array tendrá una dimensión efectiva de 10 filas y 8 +columnas). +La manera de indicar si un asiento se encuentra libre o no, es mediante un número entero que tendrá +valores: +0 → el asiento está vacío. +1 → el asiento está ocupado. +A la hora de mostrar la ocupación de la sala en lugar de con 1 y con 0 lo haremos con los símbolos: +O → el asiento está vacío. +X → el asiento está ocupado. +Así pues, cada vez que mostremos la sala, esta debe tener un aspecto similar al siguiente: +X X X O O O O O X X +O O O O O X X O O O +X X O O X X O O O X +… +Y así con todas las filas. + +Al comienzo del programa la sala se encuentra con todas sus posiciones vacías. El programa debe +asegurarse de ello al comienzo (al comienzo el array se carga con todas sus posiciones con valor 0). +Para que el encargado de la sala pueda manejarla, se le presentará un menú con las siguientes +opciones: + +1. Comprar entrada. Se le pedirá que indique la fila y el asiento (columna) en el que se quiere +sentar el espectador. Si ese asiento está ocupado se dará un mensaje de error. Si el asiento está libre, +se cambia su posición a ocupado y se da un mensaje de “entrada comprada”. La fila y columna +introducida deben ser válidas (entre 0 y su dimensión máxima), en caso contrario se mostrará un +mensaje de error. + +2. Mostrar la ocupación de la sala. Mostrará toda la sala y sus asientos indicando de la manera +descrita cuales están ocupados y cuales están libres. + +3. Devolver entrada. Se pedirá que indique la fila y el asiento (columna) que se quiere liberar. Si el +asiento ya estaba libre, se indicará mediante un mensaje de error. Si el asiento estaba ocupado, éste +se libera y se indica un mensaje de “asiento liberado”. La fila y columna introducida deben ser +válidas (entre 0 y su dimensión máxima), en caso contrario se mostrará un mensaje de error. + +4. Calcular recaudación de la sala. Se calculará la recaudación total de la sala teniendo en cuenta +solo los asientos ocupados y que cada entrada tiene un valor de 5.5 €. + +0. Salir. + +El menú se repetirá hasta que el encargado de la sala pulse la opción de salir. + +*/ +#define FILAS 10 +#define ASIENTOS 8 + +int main(){ + +// Variables + + int sala[FILAS][ASIENTOS]={0}; + int i=0; + int j=0; + char estado[1]; + int menu, resFila, resAsiento; + float recauda; + char salir; + + +// Mostrar el estado de los asientos vacios. + + printf("\n------------------------------"); + printf("\n| Estado inicial de la sala |"); + printf("\n------------------------------\n\n"); + printf(" |\t0\t1\t2\t3\t4\t5\t6\t7\t<< Asiento\n"); + printf("_____|_____________________________________________________________________________\n"); + printf(" |\n"); + for(i=0; i9){ + printf("\nSolo tenemos filas del 0 al 9.\nVuelva a intentarlo: "); + } + }while (resFila<-1||resFila>9); + + + printf("Número de asiento: "); + + // Pedir Asiento y control de nº de asiento correcto + do{ + scanf("%d", &resAsiento); + if(resAsiento<0||resAsiento>7){ + printf("\nSolo tenemos asientos del 0 al 7.\nVuelva a intentarlo: "); + } + }while (resAsiento<-1||resAsiento>7); + + // Control si el asiento está ocupado o es una reserva correcta + if(sala[resFila][resAsiento]==1){ + printf("\n****************************************"); + printf("\nLo sentimos, este lugar ya está ocupado."); + printf("\n****************************************\n"); + }else{ + sala[resFila][resAsiento]=1; + printf("\n*****************************************"); + printf("\nSu reserva se ha efectuado correctamente."); + printf("\n¡GRACIAS POR SU COMPRA!"); + printf("\n*****************************************\n"); + } + + break; + + // OPCIÓN 2 + case 2: + + // Mostrar el estado de los asientos vacios. + + printf("\n------------------------------"); + printf("\n| Estado actual de la sala |"); + printf("\n------------------------------\n\n"); + printf(" |\t0\t1\t2\t3\t4\t5\t6\t7\t<< Asiento\n"); + printf("_____|_____________________________________________________________________________\n"); + printf(" |\n"); + for(i=0; i9){ + printf("\nSolo tenemos filas del 0 al 9.\nVuelva a intentarlo: "); + } + }while (resFila<-1||resFila>9); + + + printf("Número de asiento: "); + + // Pedir Asiento y control de nº de asiento correcto + do{ + scanf("%d", &resAsiento); + if(resAsiento<0||resAsiento>7){ + printf("\nSolo tenemos asientos del 0 al 7.\nVuelva a intentarlo: "); + } + }while (resAsiento<-1||resAsiento>7); + + // Control si el asiento está libre (error) o es una anulación correcta + if(sala[resFila][resAsiento]==0){ + printf("\n***********************************"); + printf("\nLo sentimos, este lugar está libre,\nno puede ser su reserva."); + printf("\n***********************************\n"); + }else{ + sala[resFila][resAsiento]=0; + printf("\n*******************************************"); + printf("\nSu reserva ha sido cancelada correctamente."); + printf("\n¡HASTA PRONTO!"); + printf("\n*******************************************\n"); + } + + + + break; + + // OPCIÓN 4 + case 4: + recauda=0; + for(i=0; i +#include + + +/* +Nos han pedido un pequeño programa escrito en C para controlar la afluencia de una sala de cine en +la que las butacas se distribuyen en filas y asientos (los asientos serían las columnas). Para ello +utilizaremos un array bidimensional que abarque toda la sala. El encargado nos ha dicho que la sala +cuenta con 10 filas y 8 asientos por cada fila (el array tendrá una dimensión efectiva de 10 filas y 8 +columnas). +La manera de indicar si un asiento se encuentra libre o no, es mediante un número entero que tendrá +valores: +0 → el asiento está vacío. +1 → el asiento está ocupado. +A la hora de mostrar la ocupación de la sala en lugar de con 1 y con 0 lo haremos con los símbolos: +O → el asiento está vacío. +X → el asiento está ocupado. +Así pues, cada vez que mostremos la sala, esta debe tener un aspecto similar al siguiente: +X X X O O O O O X X +O O O O O X X O O O +X X O O X X O O O X +… +Y así con todas las filas. + +Al comienzo del programa la sala se encuentra con todas sus posiciones vacías. El programa debe +asegurarse de ello al comienzo (al comienzo el array se carga con todas sus posiciones con valor 0). +Para que el encargado de la sala pueda manejarla, se le presentará un menú con las siguientes +opciones: + +1. Comprar entrada. Se le pedirá que indique la fila y el asiento (columna) en el que se quiere +sentar el espectador. Si ese asiento está ocupado se dará un mensaje de error. Si el asiento está libre, +se cambia su posición a ocupado y se da un mensaje de “entrada comprada”. La fila y columna +introducida deben ser válidas (entre 0 y su dimensión máxima), en caso contrario se mostrará un +mensaje de error. + +2. Mostrar la ocupación de la sala. Mostrará toda la sala y sus asientos indicando de la manera +descrita cuales están ocupados y cuales están libres. + +3. Devolver entrada. Se pedirá que indique la fila y el asiento (columna) que se quiere liberar. Si el +asiento ya estaba libre, se indicará mediante un mensaje de error. Si el asiento estaba ocupado, éste +se libera y se indica un mensaje de “asiento liberado”. La fila y columna introducida deben ser +válidas (entre 0 y su dimensión máxima), en caso contrario se mostrará un mensaje de error. + +4. Calcular recaudación de la sala. Se calculará la recaudación total de la sala teniendo en cuenta +solo los asientos ocupados y que cada entrada tiene un valor de 5.5 €. + +0. Salir. + +El menú se repetirá hasta que el encargado de la sala pulse la opción de salir. + +*/ +#define FILAS 10 +#define ASIENTOS 8 + +int main(){ + +// Variables + + int sala[FILAS][ASIENTOS]={0}; + int i=0; + int j=0; + char estado; + int menu, resFila, resAsiento; + float recauda; + char salir; + + +// Mostrar el estado de los asientos vacios. + + printf("\n------------------------------"); + printf("\n| Estado inicial de la sala |"); + printf("\n------------------------------\n\n"); + printf(" |\t0\t1\t2\t3\t4\t5\t6\t7\t<< Asiento\n"); + printf("_____|_____________________________________________________________________________\n"); + printf(" |\n"); + for(i=0; i=FILAS){ + printf("\nSolo tenemos filas del 0 al 9.\nVuelva a intentarlo: "); + } + }while (resFila<=-1||resFila>=FILAS); + + + printf("Número de asiento: "); + + // Pedir Asiento y control de nº de asiento correcto + do{ + scanf("%d", &resAsiento); + if(resAsiento<0||resAsiento>=ASIENTOS){ + printf("\nSolo tenemos asientos del 0 al 7.\nVuelva a intentarlo: "); + } + }while (resAsiento<=-1||resAsiento>=ASIENTOS); + + // Control si el asiento está ocupado o es una reserva correcta + if(sala[resFila][resAsiento]==1){ + printf("\n****************************************"); + printf("\nLo sentimos, este lugar ya está ocupado."); + printf("\n****************************************\n"); + }else{ + sala[resFila][resAsiento]=1; + printf("\n*****************************************"); + printf("\nSu reserva se ha efectuado correctamente."); + printf("\n¡GRACIAS POR SU COMPRA!"); + printf("\n*****************************************\n"); + } + + break; + + // OPCIÓN 2 + case 2: + + // Mostrar el estado de los asientos vacios. + + printf("\n------------------------------"); + printf("\n| Estado actual de la sala |"); + printf("\n------------------------------\n\n"); + printf(" |\t0\t1\t2\t3\t4\t5\t6\t7\t<< Asiento\n"); + printf("_____|_____________________________________________________________________________\n"); + printf(" |\n"); + for(i=0; i=FILAS){ + printf("\nSolo tenemos filas del 0 al 9.\nVuelva a intentarlo: "); + } + }while (resFila<=-1||resFila>=FILAS); + + + printf("Número de asiento: "); + + // Pedir Asiento y control de nº de asiento correcto + do{ + scanf("%d", &resAsiento); + if(resAsiento<=0||resAsiento>=ASIENTOS){ + printf("\nSolo tenemos asientos del 0 al 7.\nVuelva a intentarlo: "); + } + }while (resAsiento<=-1||resAsiento>=ASIENTOS); + + // Control si el asiento está libre (error) o es una anulación correcta + if(sala[resFila][resAsiento]==0){ + printf("\n***********************************"); + printf("\nLo sentimos, este lugar está libre,\nno puede ser su liberado."); + printf("\n***********************************\n"); + }else{ + sala[resFila][resAsiento]=0; + printf("\n*******************************************"); + printf("\nSu reserva ha sido cancelada correctamente."); + printf("\n¡HASTA PRONTO!"); + printf("\n*******************************************\n"); + } + + + + break; + + // OPCIÓN 4 + case 4: + recauda=0; + for(i=0; i +#include + +/* + TRES EN RAYA +*/ + +#define TAM 3 + +int main(){ + // Variables + int tablero[TAM][TAM]={0}; + int i,j,final, fila, columna, tirada=0; + char estado[1]="-"; + + // Variables de comprobación + int ganador1=3; + int ganador2=15; + + + + do{ + + //Muestra el estado del tablero + printf("\n |\t0\t1\t2\t<< Columna\n"); + printf("_____|____________________________________\n"); + printf(" |\n"); + for(i=0; i2){ + printf("\nSolo hay filas del 0 al 2."); + printf("\nVuelve a intentarlo: "); + } + }while (fila<-1||fila>2); + + + printf(" Elige una columna: "); + + // Pedir Columna y control de nº columna correcto + do{ + scanf("%d", &columna); + if(columna<0||columna>2){ + printf("\nSolo hay columnas del 0 al 3."); + printf("\nVuelve a intentarlo: "); + } + }while (columna<-1||columna>2); + + // Control si la posición está ocupada (error) o es una posición correcta + if(tablero[fila][columna]!=0){ + printf("\nCasilla ocupada."); + printf("\nVuelve a intentarlo:\n"); + }else{ + tablero[fila][columna]=1; + tirada=1; + } + + }while(tirada!=1); + + tirada=0; + + //Comprobar si hay ganador o empate + if(ganador1==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador1==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador1==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador1==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador1==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador1==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 1 #"); + printf("\n#########################\n"); + final=1; + } + + if(ganador2==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador2==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador2==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador2==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador2==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador2==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 2 #"); + printf("\n#########################\n"); + final=1; + } + + if(tablero[0][0]!=0&&tablero[1][0]!=0&&tablero[2][0]!=0&& + tablero[0][1]!=0&&tablero[1][1]!=0&&tablero[2][1]!=0&& + tablero[0][2]!=0&&tablero[1][2]!=0&&tablero[2][2]!=0){ + printf("\n##############"); + printf("\n# EMPATE #"); + printf("\n##############\n"); + final=1; + } + + + //Muestra el estado del tablero + printf("\n |\t0\t1\t2\t<< Columna\n"); + printf("_____|____________________________________\n"); + printf(" |\n"); + for(i=0; i2){ + printf("\nSolo hay filas del 0 al 2."); + printf("\nVuelve a intentarlo: "); + } + }while (fila<-1||fila>2); + + + printf(" Elige una columna: "); + + // Pedir Columna y control de nº columna correcto + do{ + scanf("%d", &columna); + if(columna<0||columna>2){ + printf("\nSolo hay columnas del 0 al 3."); + printf("\nVuelve a intentarlo: "); + } + }while (columna<-1||columna>2); + + // Control si la posición está ocupada (error) o es una posición correcta + if(tablero[fila][columna]!=0){ + printf("\nCasilla ocupada."); + printf("\nVuelve a intentarlo:\n"); + }else{ + tablero[fila][columna]=5; + tirada=1; + } + + }while(tirada!=1); + + tirada=0; + + + + + //Comprobar si hay ganador o empate + if(ganador1==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador1==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador1==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador1==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador1==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador1==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 1 #"); + printf("\n#########################\n"); + final=1; + } + + if(ganador2==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador2==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador2==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador2==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador2==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador2==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 2 #"); + printf("\n#########################\n"); + final=1; + } + + if(tablero[0][0]!=0&&tablero[1][0]!=0&&tablero[2][0]!=0&& + tablero[0][1]!=0&&tablero[1][1]!=0&&tablero[2][1]!=0&& + tablero[0][2]!=0&&tablero[1][2]!=0&&tablero[2][2]!=0){ + printf("\n##############"); + printf("\n# EMPATE #"); + printf("\n##############\n"); + final=1; + } + + + + + }while(final!=1); + + return 0; +} \ No newline at end of file diff --git a/Ejercicios/0702tresEnRaya.c b/Ejercicios/0702tresEnRaya.c new file mode 100644 index 0000000..3f12982 --- /dev/null +++ b/Ejercicios/0702tresEnRaya.c @@ -0,0 +1,246 @@ +#include +#include + +/* + TRES EN RAYA +*/ + +#define TAM 3 + +int main(){ + // Variables + int tablero[TAM][TAM]={0}; + int i,j,final, fila, columna, tirada=0; + char estado[1]="-"; + + // Variables de comprobación + int ganador1=3; + int ganador2=15; + + + + do{ + + //Muestra el estado del tablero + printf("\n |\t0\t1\t2\t<< Columna\n"); + printf("_____|____________________________________\n"); + printf(" |\n"); + for(i=0; i2){ + printf("\nSolo hay filas del 0 al 2."); + printf("\nVuelve a intentarlo: "); + } + }while (fila<-1||fila>2); + + + printf(" Elige una columna: "); + + // Pedir Columna y control de nº columna correcto + do{ + scanf("%d", &columna); + if(columna<0||columna>2){ + printf("\nSolo hay columnas del 0 al 3."); + printf("\nVuelve a intentarlo: "); + } + }while (columna<-1||columna>2); + + // Control si la posición está ocupada (error) o es una posición correcta + if(tablero[fila][columna]!=0){ + printf("\nCasilla ocupada."); + printf("\nVuelve a intentarlo:\n"); + }else{ + tablero[fila][columna]=1; + tirada=1; + } + + }while(tirada!=1); + + tirada=0; + + //Comprobar si hay ganador o empate + if(ganador1==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador1==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador1==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador1==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador1==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador1==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 1 #"); + printf("\n#########################\n"); + final=1; + } + + if(ganador2==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador2==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador2==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador2==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador2==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador2==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 2 #"); + printf("\n#########################\n"); + final=1; + } + + if(tablero[0][0]!=0&&tablero[1][0]!=0&&tablero[2][0]!=0&& + tablero[0][1]!=0&&tablero[1][1]!=0&&tablero[2][1]!=0&& + tablero[0][2]!=0&&tablero[1][2]!=0&&tablero[2][2]!=0){ + printf("\n##############"); + printf("\n# EMPATE #"); + printf("\n##############\n"); + final=1; + } + + + //Muestra el estado del tablero + printf("\n |\t0\t1\t2\t<< Columna\n"); + printf("_____|____________________________________\n"); + printf(" |\n"); + for(i=0; i2){ + printf("\nSolo hay filas del 0 al 2."); + printf("\nVuelve a intentarlo: "); + } + }while (fila<-1||fila>2); + + + printf(" Elige una columna: "); + + // Pedir Columna y control de nº columna correcto + do{ + scanf("%d", &columna); + if(columna<0||columna>2){ + printf("\nSolo hay columnas del 0 al 3."); + printf("\nVuelve a intentarlo: "); + } + }while (columna<-1||columna>2); + + // Control si la posición está ocupada (error) o es una posición correcta + if(tablero[fila][columna]!=0){ + printf("\nCasilla ocupada."); + printf("\nVuelve a intentarlo:\n"); + }else{ + tablero[fila][columna]=5; + tirada=1; + } + + }while(tirada!=1); + + tirada=0; + + + + + //Comprobar si hay ganador o empate + if(ganador1==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador1==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador1==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador1==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador1==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador1==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador1==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 1 #"); + printf("\n#########################\n"); + final=1; + } + + if(ganador2==tablero[0][0]+tablero[0][1]+tablero[0][2]|| + ganador2==tablero[1][0]+tablero[1][1]+tablero[1][2]|| + ganador2==tablero[2][0]+tablero[2][1]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][0]+tablero[2][0]|| + ganador2==tablero[0][1]+tablero[1][1]+tablero[2][1]|| + ganador2==tablero[0][2]+tablero[1][2]+tablero[2][2]|| + ganador2==tablero[0][0]+tablero[1][1]+tablero[2][2]|| + ganador2==tablero[0][2]+tablero[1][1]+tablero[2][0]){ + printf("\n#########################"); + printf("\n# GANADOR JUGADOR 2 #"); + printf("\n#########################\n"); + final=1; + } + + if(tablero[0][0]!=0&&tablero[1][0]!=0&&tablero[2][0]!=0&& + tablero[0][1]!=0&&tablero[1][1]!=0&&tablero[2][1]!=0&& + tablero[0][2]!=0&&tablero[1][2]!=0&&tablero[2][2]!=0){ + printf("\n##############"); + printf("\n# EMPATE #"); + printf("\n##############\n"); + final=1; + } + + + + + }while(final!=1); + + return 0; +} \ No newline at end of file diff --git a/Ejercicios/0703hundirLaFlota (Sin corregir).c b/Ejercicios/0703hundirLaFlota (Sin corregir).c new file mode 100644 index 0000000..4f23bb6 --- /dev/null +++ b/Ejercicios/0703hundirLaFlota (Sin corregir).c @@ -0,0 +1,13 @@ +#include +#include + + + +int main(){ + + + + + + +} \ No newline at end of file diff --git a/Ejercicios/0703hundirLaFlota.c b/Ejercicios/0703hundirLaFlota.c new file mode 100644 index 0000000..4f23bb6 --- /dev/null +++ b/Ejercicios/0703hundirLaFlota.c @@ -0,0 +1,13 @@ +#include +#include + + + +int main(){ + + + + + + +} \ No newline at end of file diff --git a/Ejercicios/0801Caracteres b/Ejercicios/0801Caracteres new file mode 100755 index 0000000..c6b8649 Binary files /dev/null and b/Ejercicios/0801Caracteres differ diff --git a/Ejercicios/0801Caracteres.c b/Ejercicios/0801Caracteres.c new file mode 100644 index 0000000..b0944c6 --- /dev/null +++ b/Ejercicios/0801Caracteres.c @@ -0,0 +1,31 @@ +#include +#include +#include + +int main(){ + + char cadena1[50]; + char cadena2[50]; + char cadena3[50]; + + printf("\nIntroduce la primera cadena: "); + fflush(stdin); + scanf("%s", cadena1); + + printf("\nIntroduce la segunda cadena: "); + fflush(stdin); + gets(cadena2); + + printf("\nintroduce la tercera cadena: "); + fflush(stdin); + scanf("%[^\n]", cadena3); + + printf("\n-----------"); + printf("\nCadena 1: %s", cadena1); + printf("\nCadena 2: %s", cadena2); + printf("\nCadena 3: %s", cadena3); + + printf("\n"); + + +} \ No newline at end of file diff --git a/Ejercicios/0802gestionarCadenasCaracteres b/Ejercicios/0802gestionarCadenasCaracteres new file mode 100755 index 0000000..f098a7b Binary files /dev/null and b/Ejercicios/0802gestionarCadenasCaracteres differ diff --git a/Ejercicios/0802gestionarCadenasCaracteres.c b/Ejercicios/0802gestionarCadenasCaracteres.c new file mode 100644 index 0000000..76aafeb --- /dev/null +++ b/Ejercicios/0802gestionarCadenasCaracteres.c @@ -0,0 +1,88 @@ +#include +#include +#include + +/* +Ejercicio: +Programa en C que pida al usuario 2 cadenas de 100 caracteres +y les cargue información. + +Después +- las muestra +- indicará la longitud de cada una +- indicará si son iguales entre ellas o no +- copia el contenido de la primera en la segunda y mostrar de nuevo ambás. + +*/ + +int main(){ + + /* Variables */ + char cadena1[100]; + char cadena2[100]; + int longitud; + + printf("\nIntroduce la primera cadena: "); + fflush(stdin); + scanf("%s", cadena1); + + +fflush(stdin); + + printf("\nIntroduce la segunda cadena: "); + fflush(stdin); + scanf("%s", cadena2); + + printf("\n"); + + + /* Mostrar */ + printf("\n###################\nMostrar las cadenas\n###################"); + printf("\nCadena 1: %s", cadena1); + printf("\nCadena 2: %s", cadena2); + + printf("\n"); + + + /* indicará la longitud de cada una*/ + printf("\n#######################\nLongitud de las cadenas\n#######################"); + + longitud=strlen(cadena1); + printf("\nLa Cadena 1 mide: %d", longitud); + + longitud=strlen(cadena2); + printf("\nLa Cadena 2 mide: %d", longitud); + + printf("\n"); + + /* indicará si son iguales entre ellas o no*/ + printf("\n####################\nComparar las cadenas\n####################"); + + if (strcmp(cadena1,cadena2)==0){ + printf("\n Las cadenas son iguales"); + }else{ + printf("\n Las cadenas no son iguales. "); + + if(strcmp(cadena1, cadena2)<0){ + printf("La Cadena 1 \"%s\" es alfabeticamente anterior a cadena2 \"%s\"",cadena1,cadena2); + }else{ + printf("La Cadena 2 \"%s\" es alfabeticamente anterior a cadena 1 \"%s\"",cadena2,cadena1); + } + } + + printf("\n"); + + + /* copia el contenido de la primera en la segunda y mostrar de nuevo ambás.*/ + + printf("\n##########################################\nCopio la cadena 1 en la cadena 2 y muestro\n##########################################"); + + strcpy(cadena2,cadena1); + + + printf("\nCadena 1: %s", cadena1); + printf("\nCadena 2: %s", cadena2); + printf("\n\n"); + + +} \ No newline at end of file diff --git a/Ejercicios/0901estructura b/Ejercicios/0901estructura new file mode 100755 index 0000000..ae40a2b Binary files /dev/null and b/Ejercicios/0901estructura differ diff --git a/Ejercicios/0901estructura.c b/Ejercicios/0901estructura.c new file mode 100644 index 0000000..9319a2b --- /dev/null +++ b/Ejercicios/0901estructura.c @@ -0,0 +1,143 @@ +#include +#include + +//definimos la estructura (el tipo) + +struct fecha{ + int dia; + int mes; + int anio; +}; + +struct persona{ + char nombre[50]; + int edad; + char email[50]; + float altura; + struct fecha fregistro; +}; + +int main(){ + + //declarar variables de ese tipo de estructura y darles valores + struct persona p1; + struct persona p2; + struct persona p3; + int numero; + + //para darle valor a cada uno de sus campos, lo tenemos que hacer campo a campo + //para acceder a un campo utilizamos el operador . + // el operador . se conoce como acceso a miembro de una estructura + + +/* Datos persona 1*/ + + printf("\nIntroduce el nombre de la persona 1: "); + fflush(stdin); + scanf("%s", p1.nombre); + + printf("\nIntroduce ahora la edad: "); + scanf("%d", &p1.edad); + + printf("\nIntroduce el mail: "); + fflush(stdin); + scanf("%s", p1.email); + + printf("\nIntroduce la altura: "); + scanf("%f", &p1.altura); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p1.fregistro.dia); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p1.fregistro.mes); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p1.fregistro.anio); + + printf("\nLa persona registrada es %s con %d años, con email %s y una altura de %.2f", p1.nombre, + p1.edad, + p1.email, + p1.altura); + + printf("\nFecha de registro: %d/%d/%d", p1.fregistro.dia, p1.fregistro.mes, p1.fregistro.anio); + + printf("\n"); + + + +/* Datos persona 2*/ + + printf("\nIntroduce el nombre de la persona 2: "); + fflush(stdin); + scanf("%s", p2.nombre); + + printf("\nIntroduce ahora la edad: "); + scanf("%d", &p2.edad); + + printf("\nIntroduce el mail: "); + fflush(stdin); + scanf("%s", p2.email); + + printf("\nIntroduce la altura: "); + scanf("%f", &p2.altura); + + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p2.fregistro.dia); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p2.fregistro.mes); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p2.fregistro.anio); + + printf("\nLa persona registrada es %s con %d años, con email %s y una altura de %.2f", p2.nombre, + p2.edad, + p2.email, + p2.altura); + + printf("\nFecha de registro: %d/%d/%d", p2.fregistro.dia, p2.fregistro.mes, p2.fregistro.anio); + + printf("\n"); + + +/* Datos persona 3*/ + + + printf("\nIntroduce el nombre de la persona 3: "); + fflush(stdin); + scanf("%s", p3.nombre); + + printf("\nIntroduce ahora la edad: "); + scanf("%d", &p3.edad); + + printf("\nIntroduce el mail: "); + fflush(stdin); + scanf("%s", p3.email); + + printf("\nIntroduce la altura: "); + scanf("%f", &p3.altura); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p3.fregistro.dia); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p3.fregistro.mes); + + printf("\nIntroduce el día de registro: "); + scanf("%d", &p3.fregistro.anio); + + printf("\nLa persona registrada es %s con %d años, con email %s y una altura de %.2f", p3.nombre, + p3.edad, + p3.email, + p3.altura); + + printf("\nFecha de registro: %d/%d/%d", p1.fregistro.dia, p1.fregistro.mes, p1.fregistro.anio); + + printf("\n"); + + + +} + diff --git a/Ejercicios/1001PalabrasYLetras.c b/Ejercicios/1001PalabrasYLetras.c new file mode 100644 index 0000000..e69de29 diff --git a/Ejercicios/1002SustituirLetras.c b/Ejercicios/1002SustituirLetras.c new file mode 100644 index 0000000..e69de29 diff --git a/Ejercicios/1003Palindromo.c b/Ejercicios/1003Palindromo.c new file mode 100644 index 0000000..e69de29 diff --git a/Ejercicios/1004Ahorcado.c b/Ejercicios/1004Ahorcado.c new file mode 100644 index 0000000..e69de29 diff --git a/Ejercicios/1101EjemploMatrices b/Ejercicios/1101EjemploMatrices new file mode 100755 index 0000000..cb3dae6 Binary files /dev/null and b/Ejercicios/1101EjemploMatrices differ diff --git a/Ejercicios/1101EjemploMatrices.c b/Ejercicios/1101EjemploMatrices.c new file mode 100644 index 0000000..3b76d6f --- /dev/null +++ b/Ejercicios/1101EjemploMatrices.c @@ -0,0 +1,39 @@ +#include + +#define FILAS 4 +#define COLUMNAS 3 + +void cargar (int m[][COLUMNAS]); +void mostrar(int m[][COLUMNAS]); + +int main(){ + +int matriz[FILAS][COLUMNAS]; + +cargar(matriz); +mostrar(matriz); + + +} + +void cargar(int m[][COLUMNAS]){ + int i, j; + + for(i=0; i +#include + +#define MAX 3 + + +struct contacto { + char nombre[60]; + char telefono[15]; + int edad; +}; + +int main (){ + + // Defino variables + int menu; + int i; + + // tipo nombre [Tamaño] + struct contacto agenda [MAX]; + + //elabora un menú con estas opciones: 1. cargar 2. mostrar 0 . salir + + + do{ + + printf("\nMenú"); + printf("\n1 Cargar agenda"); + printf("\n2 Mostrar agenda"); + printf("\n0 Salir\n"); + + printf("\nIntroduce una opción reseñada: "); + fflush(stdin); + scanf("%d", &menu); + + switch(menu){ + case 1: + + for(i=0; i +#include + + +/* +Programa que permita gestionar los coches de un garaje. +Cada plaza tiene un número del 0 al 44. +Para cada coche que se guarda en el garaje almacena: + - Matrícula cadena 10 + - Modelo cadena 30 + - Nombre conductor – cadena 60 + - Fecha de entrada en el garaje día mes y año. Todo números enteros. + +El programa mostrará el menú + 1 Meter coche. Comprobando que el garaje no está lleno. + 2 Mostrar la información del garaje + 3 Pedir una matrícula al usuario e indicar si ese coche está o no en el garaje. + 0 Salir + +*/ + +#define TAM 45 + +// estructura de la fecha de entrada +struct fecha { + int dia; + int mes; + int year; +}; + +//estructura de la plaza de garaje +struct plaza { + int estado; // 0 cuando la plaza está vacía y 1 cuando está ocupada + char matricula[10]; + char modelo[30]; + char nomConductor[60]; + struct fecha fechaEntrada; +}; + +int main (){ + + // Defino variables + int menu; + int numPlaza; + int i; + int ocupado=0; + int libre=0; + char buscarMatr[10]; + int encontrado; + + + // tipo nombre [Tamaño] + struct plaza garaje [TAM]; + + + // Dejo el estado de las plazas de garaje a 0 (Vacías) + for(i=0; i libre", i); + libre++; + }else{ + printf("\nPlaza %d -< ocupada matricula: %s, modelo: %s", i, garaje[i].matricula, garaje[i].modelo); + ocupado++; + } + } + printf("\nLibres: %d Ocupadas: %d", libre, ocupado); + + break; + case 3: + //primero, pide la matrícula que la guardarás en una variable cualquiera (una cadena) + + printf("\nDame la matrícula a buscar: "); + fflush(stdin); + scanf("%s", buscarMatr); + + //recorre todo el garaje, comprueba que el estado es 1 y si el estado es 1, compara las matriculas + //recuerda que las cadenas se comparan con strcmp + + //puedes valerte de un flag para indicar si has encontrado o no el coche. + + encontrado=0; + for(i=0; i