Skip to content

Instantly share code, notes, and snippets.

@erseco
Created April 19, 2021 18:38
Show Gist options
  • Save erseco/66b75160e409685300edb77ce0f06904 to your computer and use it in GitHub Desktop.
Save erseco/66b75160e409685300edb77ce0f06904 to your computer and use it in GitHub Desktop.
Ejercicio de las oposiciones informatica andalucía 2018
#include <stdio.h>
/* Función para sumar, acepta dos valores de entrada y devolverá el resultado de la operación */
int sumar(int, int);
/* Función para restar, acepta dos valores de entrada y devolverá el resultado de la operación */
int restar(int, int);
/* Función para multiplicar, acepta dos valores de entrada y devolverá el resultado de la operación */
int multiplicar(int, int);
/* Función para dividir, acepta dos valores de entrada y devolverá el resultado de la operación */
int dividir(int, int);
/* Función que pinta el mensaje de menú de opciones */
void pintaMensaje(void);
/* Función que pide un número al usuario */
int pideNumero(void);
/* Función de entrada */
int main(void) {
/* Declaración de variables */
int valor1, valor2, resultado, opcion;
/* Bucle de preguntas */
do {
pintaMensaje();
/* Leemos la opción seleccionada por el usuario */
scanf("%d", &opcion);
if (opcion == 5) {
printf("Saliendo\n");
} else {
/* Pedimos los numeros al usuario */
valor1 = pideNumero();
valor2 = pideNumero();
switch(opcion){
case 1:
resultado = sumar(valor1, valor2);
break;
case 2:
resultado = restar(valor1, valor2);
break;
case 3:
resultado = multiplicar(valor1, valor2);
break;
case 4:
resultado = dividir(valor1, valor2);
break;
default:
printf("Opcion no valida.\n");
}
/* Mostramos el resultado */
printf("Resultado: %d\n", resultado);
}
} while(opcion!=5);
/* Salida del programa */
return 0;
}
int pideNumero(void){
int numero;
printf("Introduzca un numero: \n");
scanf("%d", &numero);
return numero;
}
void pintaMensaje(void){
printf("Elige una opción\n");
printf("\t1: Sumar\n");
printf("\t2: Restar\n");
printf("\t3: Multiplicar\n");
printf("\t4: Dividr\n");
printf("\t5: Salir\n");
}
int sumar(int valor1, int valor2){
return valor1 + valor2;
}
int restar(int valor1, int valor2){
return valor1 - valor2;
}
int multiplicar(int valor1, int valor2){
int resultado = 0;
/* Iteramos n veces incrementando el valor x, siendo n valor2 y x valor1 */
for (int i=0; i < valor2; i++)
resultado += valor1;
return resultado;
}
int dividir(int valor1, int valor2){
int i=0;
/* Vamos restando valor2 a valor1 hasta llegar a 0 y devolvemos el numero de restas */
while(valor1>=0 ){
valor1 = valor1 - valor2;
i++;
}
return i;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment