Programas en C
Programas en C
Programas en C
Para practicar el uso de condicional if … else en C vamos a desarrollar una serie de ejercicios resueltos. El primer
ejercicio plantea lo siguiente:
Transformar en código el siguiente pseudocódigo, relativo a determinar la naturaleza par o impar de un número. Nota: El
procedimiento a emplear será basado en el uso del operador módulo, %.
Pseudocódigo:
SOLUCIÓN
#include <stdio.h>
#include <stdlib.h>
int main() {
int Num; int Res;
printf("Programa para determinar naturaleza par o impar de un numero\n\n");
printf ("Introduzca un numero entero: ");
scanf ("%d", &Num);
Res = Num%2;
if (Res==0) {
printf ("El numero es par\n");
} else {
printf ("El numero es impar\n");
}
return 0;
}
Se quiere crear un programaque resuelva la ecuación cuadrática tipo ax 2 + bx + c. Para ello se ha estudiado el problema,
que se ha planteado en pseudocódigo. Transformar el pseudocódigo que se muestra a continuación en código C y
comprobar que el programa obtiene los resultados esperados para una serie de casos de prueba.
1. Inicio [Pseudocódigo]
2. [Resolución de ecuación cuadrática ax2 + bx + c = 0]
3. Mostrar “Introduzca los valores de parámetros”
4. Pedir a, b, c
5. d = b ^ 2 -4 * a * c : e = 2 * a
6. Si d = 0 Entonces
Mostrar “x1 = x2 =”, -b / e
SiNo
Si d > 0 Entonces
Mostrar “x1 =”, (-b + SQR(d)) / e
Mostrar “x2 =”, (-b -SQR(d)) / e
SiNo
Mostrar “x1 =”, -b / e, “+”, SQR(-d) / e, “i”
Mostrar “x2 =”, -b / e, “-”, SQR(-d) / e, “i”
FinSi
FinSi
7. Fin
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
printf("Introduzca número del 1 al 5:");
scanf("%d",&i);
if (i!=4) {
printf("Es primo.");
}
else
{
printf("No es primo.");
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
printf("Introduzca número:");
scanf("%d",&i);
if (i%2==0) {
printf("Es par.");
}
else
{
printf("Es impar.");
}
system("PAUSE");
return 0;
}
int main(void)
{
int i;
printf("Introduzca número del 1 al 7:");
scanf("%d",&i);
switch(i){
case 1:
printf ("Lunes\n");
break;
case 2:
printf ("Martes\n");
break;
case 3:
printf ("Miércoles\n");
break;
case 4:
printf ("Jueves\n");
break;
case 5:
printf ("Viernes\n");
break;
case 6:
printf ("Sábado\n");
break;
case 7:
printf ("Domingo\n");
break;
default:
printf ("Opción no válida\n");
break;
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
printf("Introduzca número del 1 al 12:");
scanf("%d",&i);
switch(i){
case 1:
printf ("Enero\n");
break;
case 2:
printf ("Febrero\n");
break;
case 3:
printf ("Marzo\n");
break;
case 4:
printf ("Abril\n");
break;
case 5:
printf ("Mayo\n");
break;
case 6:
printf ("Junio\n");
break;
case 7:
printf ("Julio\n");
break;
case 8:
printf ("Agosto\n");
break;
case 9:
printf ("Septiembre\n");
break;
case 10:
printf ("Octubre\n");
break;
case 11:
printf ("Noviembre\n");
break;
case 12:
printf ("Diciembre\n");
break;
default:
printf ("Opción no válida\n");
break;
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
system("PAUSE");
return 0;
}
7. Que pida 3 números y los muestre en pantalla de mayor a menor en líneas distintas.
En caso de haber números iguales se pintan en la misma línea.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1;
if (num1>0){
printf("Es positivo\n");
}
else if (num1<0){
printf("Es negativo\n");
}
else
{
printf("Es cero\n");
}
system("PAUSE");
return 0;
}
9. Que sólo permita introducir los caracteres S y N.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
printf("Introduzca un carácter:");
scanf("%c",&c);
if (c=='s' || c=='n' ){
printf("Es correcto\n");
}
else
{
printf("Es incorrecto\n");
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1;
printf("Introduzca un número:");
scanf("%d",&num1);
if (num1>100){
printf("Es mayor\n");
}
else
{
printf("Es menor\n");
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
printf("Introduzca un carácter:");
scanf("%c",&c);
switch (c)
{
case 'a':
printf ("Es vocal\n");
break;
case 'e':
printf ("Es vocal\n");
break;
case 'i':
printf ("Es vocal\n");
break;
case 'o':
printf ("Es vocal\n");
break;
case 'u':
printf ("Es vocal\n");
break;
default:
printf ("No es vocal\n");
break;
}
system("PAUSE");
return 0;
}
12. Que pida tres números y detecte si se han introducido en orden creciente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
if (num1<num2)
{
if (num2<num3)
{
printf("Orden creciente");
}
else
{
printf("No están introducidos en orden creciente ");
}
}
else
{
printf("No están introducidos en orden creciente ");
}
system("PAUSE");
return 0;
}
13. Que pida tres números y detecte si se han introducido en orden decreciente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
if (num1>num2)
{
if (num2>num3)
{
printf("Orden decreciente");
}
else
{
printf("No están introducidos en orden decreciente ");
}
}
else
{
printf("No están introducidos en orden decreciente ");
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10,mayor,menor;
mayor=0;
menor=10;
if (num1>mayor)
{
mayor=num1;
}
else if (num1<menor)
{
menor=num1;
}
if (num2>mayor)
{
mayor=num2;
}
else if (num2<menor)
{
menor=num2;
}
if (num3>mayor)
{
mayor=num3;
}
else if (num3<menor)
{
menor=num3;
}
if (num4>mayor)
{
mayor=num4;
}
else if (num4<menor)
{
menor=num4;
}
if (num5>mayor)
{
mayor=num5;
}
else if (num5<menor)
{
menor=num5;
}
if (num6>mayor)
{
mayor=num6;
}
else if (num6<menor)
{
menor=num6;
}
if (num7>mayor)
{
mayor=num7;
}
else if (num7<menor)
{
menor=num7;
}
if (num8>mayor)
{
mayor=num8;
}
else if (num8<menor)
{
menor=num8;
}
if (num9>mayor)
{
mayor=num9;
}
else if (num9<menor)
{
menor=num9;
}
if (num10>mayor)
{
mayor=num10;
}
else if (num10<menor)
{
menor=num10;
}
system("PAUSE");
return 0;
}
15. Que pida tres números e indicar si el tercero es igual a la suma del primero y el
segundo.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
if (num1+num2==num3)
{
printf("El tercer número es la suma de los dos primeros.\n");
}
else
{
printf("El tercer número NO es la suma de los dos primeros.\n");
}
system("PAUSE");
return 0;
}
16. Que muestre un menú que contemple las opciones “Archivo”, “Buscar” y “Salir”, en
caso de que no se introduzca una opción correcta se notificará por pantalla.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int opcion;
printf("Seleccione opción:\n");
printf("1 - Archivo\n");
printf("2 - Buscar\n");
printf("3 - Salir\n");
scanf("%d",&opcion);
system("PAUSE");
return 0;
}
17. Que tome dos números del 1 al 5 y diga si ambos son primos.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2;
printf("Introduzca número del 1 al 5:");
scanf("%d",&num1);
system("PAUSE");
return 0;
}
18. Que tome dos números y diga si ambos son pares o impares.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2;
printf("Introduzca primer número:");
scanf("%d",&num1);
system("PAUSE");
return 0;
}
19. Que tome tres números y diga si la multiplicación de los dos primeros es igual al
tercero.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
if (num1*num2==num3)
{
printf("El tercer número es la multiplicación de los dos primeros.\n");
}
else
{
printf("El tercer número NO es la multiplicación de los dos primeros.\n");
}
system("PAUSE");
return 0;
}
20. Que tome tres números y diga si el tercero es el resto de la división de los dos
primeros.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num1,num2,num3;
if (num1%num2==num3)
{
printf("El tercer número es el resto de la división de los dos primeros.\n");
}
else
{
printf("El tercer número NO es el resto de la división de los dos primeros.\n");
}
system("PAUSE");
return 0;
}
21. Que muestre un menú donde las opciones sean “Equilátero”, “Isósceles” y “Escaleno”,
pida una opción y calcule el perímetro del triángulo seleccionado.
Sirva de aclaración que el perímetro de un triángulo es siempre la suma de sus lados, pero
he preferido hacerlo así para ver las tres formas diferentes de calcularlo.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int lado, base, opcion;
printf("Seleccione opción:\n");
printf("1 - Equilátero\n");
printf("2 - Isósceles\n");
printf("3 - Escaleno\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
printf("El perímetro es:%d\n",3*lado);
break;
case 2:
printf("El perímetro es:%d\n",(2*lado)+base);
break;
case 3:
printf("El perímetro es:%d\n",lado + lado + lado);
break;
default:
printf("Opción no válida.");
break;
}
system("PAUSE");
return 0;
}
22. Que pase de Kg a otra unidad de medida de masa, mostrar en pantalla un menú con
las opciones posibles.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int peso;
printf("Seleccione opción:\n");
printf("1 - Hectogramos\n");
printf("2 - Decagramos\n");
printf("3 - Gramos\n");
printf("4 - Decigramos\n");
printf("5 - Centigramos\n");
printf("6 - Miligramos\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
printf("El peso es:%d\n",peso/10);
break;
case 2:
printf("El peso es:%d\n",peso/100);
break;
case 3:
printf("El peso es:%d\n",peso/1000);
break;
case 4:
printf("El peso es:%d\n",peso/10000);
break;
case 5:
printf("El peso es:%d\n",peso/100000);
break;
case 6:
printf("El peso es:%d\n",peso/1000000);
break;
default:
printf("Opción no válida.");
break;
}
system("PAUSE");
return 0;
}
23. Que lea un importe bruto y calcule su importe neto, si es mayor de 15.000 se le
aplicará un 16% de impuestos, en caso contrario se le aplicará un 10%.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float importe, deduccion;
printf("Introduzca Importe:");
scanf("%f",&importe);
if (importe>15000)
{
deduccion=importe*0.16;
}
else
{
deduccion=importe*0.1;
}
system("PAUSE");
return 0;
}
24. Que lea una hora en hora:minutos:segundos y diga la hora que es un segundo
después.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int horas, minutos, segundos;
printf("Introduzca Hora:");
scanf("%d",&horas);
printf("Introduzca Minutos:");
scanf("%d",&minutos);
printf("Introduzca Segundos:");
scanf("%d",&segundos);
segundos=segundos+1;
if (minutos>59)
{
minutos=0;
}
if (horas>23)
{
horas=0;
}
if (segundos>59)
{
segundos=0;
minutos=minutos+1;
if (minutos>59)
{
minutos=0;
horas=horas+1;
if (horas>23)
{
horas=0;
}
}
}
printf("La hora (un segundo después) es: %02d:%02d:%02d \n", horas, minutos,
segundos);
system("PAUSE");
return 0;
}
25. Que calcule el sueldo que le corresponde al trabajador de una empresa que cobra
40.000 euros anuales, el programa debe realizar los cálculos en función de los siguientes
criterios:
a. Si lleva más de 10 años en la empresa se le aplica un aumento del 10%.
b. Si lleva menos de 10 años pero más que 5 se le aplica un aumento del 7%.
c. Si lleva menos de 5 años pero más que 3 se le aplica un aumento del 5%.
d. Si lleva menos de 3 años se le aplica un aumento del 3%.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float importe, aumento;
int antiguedad;
importe=40000;
if (antiguedad>=10)
{
aumento=importe*0.1;
}
else if (antiguedad<10 && antiguedad>=5)
{
aumento=importe*0.07;
}
else if (antiguedad<5 && antiguedad>=3)
{
aumento=importe*0.05;
}
else
{
aumento=importe*0.03;
}
system("PAUSE");
return 0;
}