Al final de la ficha anterior os pedí hacer los ejercicios del 1 al 8 (excepto el 2) de la página 25 de los apuntes de José María Bea. Aquí tenéis las soluciones de los que hicimos en clase:
// Crea un programa que intercambie el valor de 2 variables. // (página 20, ej3 apuntes José María Bea ) #include <stdio.h> float a = 0; float b = 0; float intermediario = 0; int main() { printf("Programa para intercambiar variables.\n"); printf("Introduce la primera variable, 'A': "); scanf("%f", &a); printf("\nIntroduce la segunda variable, 'B': "); scanf("%f", &b); printf("\nLas variables son A = %.0f y B = %.0f", a, b); // %.0f es para que no ponga decimales printf("\n\nLas voy a intercambiar...\n"); // Ahora viene lo IMPORTANTE intermediario = a; a = b; b = intermediario; printf("\ny ahora las variables son A = %.0f y B = %.0f\n", a, b); }
// Programa que ordene 3 números enteros. // (página 20, ej4 apuntes José María Bea ) // Es un coñazo pensar todos los casos. // Hay tres líneas que se repiten todo el rato (intercambiar variables) // Cuando aprendamos a usar funciones, este programa será mucho más sencillo #include <stdio.h> int a = 0; int b = 0; int c = 0; int intermediario = 0; int main() { printf("Introduce la primera variable, 'A': "); scanf("%i", &a); printf("\nIntroduce la segunda variable, 'B': "); scanf("%i", &b); printf("\nIntroduce la tercera variable, 'C': "); scanf("%i", &c); printf("\nLas variables son A = %i, B = %i y C = %i", a, b, c); printf("\n\nAhora las voy a ordenar..."); // No se especifica, pero decidimos ordenar DE MENOR A MAYOR if(a < b && b < c) printf(" ¡pero si ya están ordenadas!\n"); // 1, 2, 3 if(a > b && b > c) // 3, 2, 1 ordenadas justo al revés { intermediario = a; a = c; c = intermediario; } if(a < b && a < c && c < b) // 1, 3, 2 { intermediario = b; b = c; c = intermediario; } if(c < a && b > a) // 2, 3, 1 { intermediario = a; a = c; c = intermediario; intermediario = b; b = c; c = intermediario; } if(a > b && a < c && b < c) // 2, 1, 3 { intermediario = a; a = b; b = intermediario; } if(a > b && a > c && b < c) // 3, 1, 2 { intermediario = a; a = b; b = intermediario; intermediario = b; b = c; c = intermediario; } printf("Las variables ordenadas son: %i, %i y %i\n", a, b, c); }
/* Un año es bisiesto si es divisible entre 4 excepto si es divisible entre 100, aunque los años divisibles entre 400 también son bisiestos. Crea un programa que te indique si un año es bisiesto o no. */ // (página 20, ej7 apuntes José María Bea) /* Mejor que hagas antes el organigrama porque tiene varios IF con ANIDAMIENTO. */ /* Si te curras a meter varias condiciones en un solo if lo puedes simplificar */ // Las sangrías son tu mejor amigo. #include <stdio.h> int anho = 0; int main() { printf("\nIntroduce el año para saber si es bisiexto: "); scanf("%i", &anho); if(anho % 4 == 0) { if(anho % 100 == 0) { if(anho % 400 == 0) printf("SÍ BISIEXTO"); else printf("NO BISIEXTO"); } else printf("SÍ BISIEXTO"); } else printf("NO BISIEXTO"); }
// Eurocalculadora
// (página 20, ej8 apuntes José María Bea )
#include <stdio.h>
int opcion = 0;
float dinero = 0;
float dineroconvertido = 0;
int main() {
printf("- EUROCALCULADORA -\n");
printf("\n 1. Ptas -> EUR");
printf("\n 2. EUR -> Ptas");
printf("\n\nSelecciona una opcion: ");
scanf("%i", &opcion);
printf("\nIntroduce el importe: ");
scanf("%f", &dinero);
switch(opcion)
{
case 1:
dineroconvertido = dinero / 166.386;
printf("\n%.0f ptas en EUR son %.2f\n",dinero, dineroconvertido);
break;
case 2:
dineroconvertido = dinero * 166.386;
printf("\n%.2f EUR en ptas son %.0f\n",dinero, dineroconvertido);
break;
default:
printf("\nOpcion no valida.\n");
break;
}
}