Categoría: C
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL. Leer más.
1×15: Lee 20 números reales y devuelve la media
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
// 1x15: Lee 20 números reales y di la media, con el mínimo de variables. #include <stdio.h> // Se puede colorear el texto que imprimamos por pantalla usando una secuencia de caracteres especiales. // Para emplearlos de forma más cómoda se definen como constantes y para su uso solo habrá que llamar a la constante con la función printf de la siguiente forma: printf(RED "cadena" WHITE), al finalizar se ha de volver a poner el color por defecto o tras finalizar la ejecución del programa permanecerá ese color. // Lista de colores: #define WHITE "\e[m" #define RED "\e[31m" #define B_RED "\e[31;1m" #define GREEN "\e[32m" #define B_GREEN "\e[32;1m" #define YELLOW "\e[33m" #define B_YELLOW "\e[33;1m" #define BLUE "\e[34m" #define B_BLUE "\e[34;1m" #define MAGENTA "\e[35m" #define CYAN "\e[36m" #define BRIGHT "\e[1m" main(){ system("clear"); float numero, resultado = 0; int i = 0; printf("A continuacion introduzca 20 numeros, se le devolvera la media:\n"); for( i; i<20; i++ ){ printf(" %i = ", i+1 ); scanf( "%g", &numero ); resultado += numero; }; resultado /= 20; if( resultado<5 ){ printf( "La media es de: " RED "%g\n\n" WHITE, resultado ); } else{ printf( "La media es de: " GREEN "%g\n\n" WHITE, resultado ); }; }; |
1×14: Calcula si un año es bisiesto o no
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// 1x14: Calcula si el año introducido es bisiesto o no. // Un año es bisiesto si es múltiplo de 4 pero no de 100 aunque sí de 400. #include <stdio.h> #include <string.h> main(){ system("clear"); int anio; char respuesta[3]; printf("Introduzca un anio para calcular si es bisiesto: "); scanf( "%i", &anio ); if ( (anio%4 == 0) && (anio%100 != 0) || (anio%400 == 0) ){ // "strcpy" permite copiar una cadena dentro de otra. strcpy(respuesta, "si"); } else{ strcpy(respuesta, "no"); }; printf( " El anio %i %s es bisiesto.\n\n", anio, respuesta ); }; |
1×13: Devuelve el valor absoluto de un número
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// 1x13: De un número introducido se pasa a su valor absoluto. #include <stdio.h> // Función que calcula el valor absoluto y devuelve el resultado. float absoluto( float num ){ // Precondición: Se recibe un parámetro de tipo real. // Poscondición: Se devuelve el mismo número pero en positivo. if( num < 0 ){ num *= -1; }; return num; }; main(){ system("clear"); float numero; printf("Introduzca un numero para calculara su valor absoluto: "); scanf( "%g", &numero ); printf("El valor absoluto es: %g\n\n", absoluto(numero) ); }; |
1×12: Realiza la conversión de grados Celsius a Fahrenheit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
// 1x12: Realiza la conversión de grados Celsius a Fahrenheit y viceversa. #include <stdio.h> main(){ system("clear"); char menu; float C, F; do{ printf("Elija 1, 2 o 3 dependiendo de la opción deseada:\n\n 1. Pasar grados Celsius a Fahrenheit\n 2. Pasar Fahrenheit a Celsius\n 3. Salir\n\n"); do{ scanf( "%c", &menu ); } while( menu != '1' && menu != '2' && menu != '3' ); switch( menu ){ case '1': //C -> F printf("Indique los grados Celsius: "); scanf( "%g", &C ); F = C * 9/5 + 32; printf("Los %gC corresponden a %gF\n\n", C, F ); break; case '2': // F -> C // printf("Indique los grados Fahrenheit: "); scanf( "%g", &F ); C = (F-32) * 5/9; printf("Los %gF corresponden a %gC\n\n", F, C ); break; }; } while( menu != '3' ); //Salir }; |
1×11: Hacer la conversión de Metros a Pies
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 1x11: Hacer la conversión de Metros a Pies pasando por pulgadas. /* 1 metro = 39.3700787 pulgadas 12 pulgadas = 1 pie */ #include <stdio.h> main(){ system("clear"); float metros, pies; printf("Deme un numero de Metros para pasarlos a Pies: "); scanf( "%g", &metros); pies = (metros*39.3700787) / 12; printf( "Los %g Metros corresponden a %g Pies.\n\n", metros ,pies ); }; |
1×10: Muestra de forma ordenada tres números
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// 1x10: Se piden tres números al usuario y se muestran ordenados, intercambiando variables. #include <stdio.h> // Función ordena dos números: float ordDosNum ( float *numA, float *numB, int bol){ // Precondición: numA y numB deben ser parámetros de tipo real, Bol debe de ser un entero/booleano con valor de 0 ó 1 // Poscondición: Se modifica el orden de numA y numB a elección: si bol=0 orden ascendente, bol=1 orden descendente. float x; if( bol == 0 && *numA > *numB ){ x = *numA; *numA = *numB; *numB = x; } else if( bol == 1 && *numA < *numB ){ x = *numB; *numB = *numA; *numA = x; }; }; main(){ system("clear"); float numeroA, numeroB, numeroC; printf("Inserte tres numeros para que se los muestre de forma ordenada.\n Primer numero: "); scanf("%g", &numeroA); printf(" Segundo numero: "); scanf("%g", &numeroB); printf(" Tercer numero: "); scanf("%g", &numeroC); if( numeroA > numeroB ){ // Ordena AyB: 0=ascend, 1=descend. ordDosNum( &numeroA , &numeroB, 0 ); }; if( numeroA > numeroC ){ ordDosNum( &numeroA , &numeroC, 0 ); }; if( numeroB > numeroC ){ ordDosNum( &numeroB , &numeroC, 0 ); }; printf("\n El orden correcto de los numeros es %g, %g y %g\n\n", numeroA, numeroB, numeroC); }; |
1×08: Pasa H:M:S a Segundos y Segundos a H:M:S
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
// 1x08: Muestra un menú que te permita convertir H:M:S a Segundos, Segundos a H:M:S y salir del menú. #include <stdio.h> #include <string.h> main(){ system("clear"); int horas, minutos, segundos, segTotales; char tiempo[9]; do{ printf( "Escriba:\n1. \"horas\" para pasar H:M:S a Segundos.\n2. \"segundos\" si quiere pasar Segundos a H:M:S.\n3. \"salir\" en caso de querer cerrar el programa.\n" ); do{ scanf("%s", tiempo); }while( strcmp( tiempo, "horas" ) != 0 && strcmp( tiempo, "segundos" ) != 0 && strcmp( tiempo, "salir" ) != 0 ); if( strcmp( tiempo, "horas" ) == 0 ){ //Conversión de H:M:S -> Segundos printf("Introduce las horas: "); scanf("%i", &horas); printf("Introduce los minutos: "); scanf("%i", &minutos); printf("Introduce los segundos: "); scanf("%i", &segundos); segTotales = (horas*60*60) + (minutos*60) + (segundos); printf("\nSu tiempo introducido: %ih %im %is corresponde a %i segundos.\n\n\n", horas, minutos, segundos, segTotales); } else if( strcmp( tiempo, "segundos" ) == 0 ){ //Conversión de Segundos -> H:M:S printf("Introduce una cantidad de segundos: "); scanf("%i", &segTotales); horas = (segTotales / 60) / 60; minutos = (segTotales / 60) % 60; segundos= segTotales % 60; printf("El numero de segundos %i corresponde a %i horas %i minutos %i segundos.\n\n\n", segTotales, horas, minutos, segundos); }; }while( strcmp( tiempo, "salir" ) != 0 ); }; |