Ejercicios resueltos de programación en C
Sección 1: Declaración de variables
En esta sección, se declaran variables de diferentes tipos en C, asignándoles valores iniciales según se indica en cada ejercicio.
- a) Interés: Se declara una variable de tipo
float
llamadainteres
y se le asigna el valor0.05
, que representa un 5% de interés.
float interes = 0.05;
- b) Bono: Se declara una variable de tipo
int
llamadabono
y se le asigna el valor32600
.
int bono = 32600;
- c) Tipo: Se declara una variable de tipo
char
llamadatipo
y se le asigna el valor'B'
.
char tipo = 'B';
- d) Precio: Se declara una variable de tipo
float
llamadaprecio
y se le asigna el valor489.67
.
float precio = 489.67;
- e) Valor: Se declara una variable de tipo
int
llamadavalor
y se le asigna el valor0
, que en este contexto representafalse
.
int valor = 0;
Impresión de los valores declarados:
printf("Soluciones Sec 2 Guia 1 \n");
printf("a) El valor del interés es %.2f \n", interes);
printf("b) El valor del bono es %d \n", bono);
printf("c) El valor de tipo es %c \n", tipo);
printf("d) El valor del precio es %.2f \n", precio);
Sección 2: Declaraciones adicionales
- 3.1: Se declaran dos variables,
x
de tipoint
yz
de tipofloat
, sin asignarles valores iniciales. - 3.2: Se declara una variable de tipo
char
llamadavariable
y se le asigna el valor'@'
. - 3.3: Se declara una variable de tipo
unsigned int
llamadaentera
, sin asignar un valor inicial. - 3.4: Se declaran dos variables de tipo
char
,uno
con valor'9'
ydos
con valor'_'
. - 3.5: Se declara una variable de tipo
unsigned int
llamadaentera2
y se le asigna el valor1
.
Impresión de los valores declarados en la Sección 3:
printf("\n Soluciones Sec 3 Guia 1 \n");
printf("2) El valor de variable es %c \n", variable);
printf("3) El valor de entera es %d \n", entera);
printf("4) El valor de uno es : %c y de dos es %c \n", uno, dos);
printf("5) El valor de entera2 es %d \n", entera2);
Sección 3: Operaciones aritméticas y matemáticas
#include
#include
#define PI 3.1415
#define IVA 0.19
En esta sección, se realizan diversos ejercicios que involucran operaciones aritméticas básicas y funciones matemáticas más complejas.
Ejercicio 1
- 1.a: Se calcula la división de
21
entre6
y se almacena el resultado en la variablen1
de tipofloat
. - 1.b: Se calcula el resto de la división de
21
entre5
y se almacena el resultado en la variablen2
de tipoint
.
float n_1 = 21;
float n_2 = 6;
float n1 = n_1 / n_2;
int n2 = 21 % 5;
Impresión de resultados:
printf("Mostrar Resultados ejercicios 1 \n");
printf("El valor de n1 es = %f", n1);
printf("\n El valor de n2 es = %d", n2);
Ejercicio 2
- 2.1: Se calcula la expresión
(12 * 3) + (6 * 8)
y se almacena el resultado enn3
. - 2.2: Se calcula la expresión
-4 * 5 * 3
y se almacena el resultado enn4
. - 2.3: Se calcula la expresión
((10 + 4) / (2 - 3)) * 5
y se almacena el resultado enn5
. - 2.4: Se solicita al usuario que ingrese dos números,
x
yb
, y luego se calcula la expresión(x / b) / (x * b)
, almacenando el resultado enn6
. - 2.5, 2.6, 2.7: No se especifica el código para estos ejercicios.
int n3 = (12 * 3) + (6 * 8);
int n4 = -4 * 5 * 3;
float n5 = ((10 + 4) / (2 - 3)) * 5;
float x, b, n6;
printf("\nIngrese un número para x: ");
scanf("%f", &x);
printf("\nIngrese un número para b: ");
scanf("%f", &b);
n6 = (x / b) / (x * b);
Impresión de resultados:
printf("Mostrar Resultados ejercicios 2 \n");
printf("El valor de n3 es = %d", n3);
printf("\n El valor de n4 es = %d", n4);
printf("\n El valor de n5 es = %f", n5);
printf("\n El valor de n6 es = %.3f", n6);
Ejercicio 3
- 3.1: Se solicita al usuario que ingrese un valor para
c
y luego se calculac
elevado a la cuarta potencia, dividido por4
, almacenando el resultado enr1
. - 3.2: Se solicitan tres valores al usuario (
a1
,b1
,c1
) y se calcula una expresión compleja, almacenando el resultado enr2
. - 3.3: Se solicitan tres valores al usuario (
a2
,b2
,c2
) y se calcula otra expresión, almacenando el resultado enr3
. - 3.4: Se solicitan dos valores al usuario (
a3
,b3
) que representan los catetos de un triángulo rectángulo, y se calcula la hipotenusah
. - 3.5: Se solicita al usuario el radio de un círculo y se calcula su área, almacenándola en
area
. - 3.6: Se solicita al usuario el precio de un producto y se calcula el precio total incluyendo el IVA, almacenándolo en
total
. - 3.7: Se solicitan cinco notas al usuario y se calcula el promedio, almacenándolo en
prom
.
float c;
printf("Ingrese el valor para C ");
scanf("%f", &c);
float r1 = (pow(c, 4)) / 4;
float a1, b1, c1, r2;
printf("Ingrese el valor para a ");
scanf("%f", &a1);
printf("Ingrese el valor para b ");
scanf("%f", &b1);
printf("Ingrese el valor para c ");
scanf("%f", &c1);
r2 = (((a1 + 3) / b1) * (pow(c1, 2) / (2 * a1) + b1));
float a2, b2, c2, r3, r3_1, r3_2;
printf("Ingrese el valor para a ");
scanf("%f", &a2);
printf("Ingrese el valor para b ");
scanf("%f", &b2);
printf("Ingrese el valor para c ");
scanf("%f", &c2);
r3_1 = pow(a2, 2);
r3_2 = (a2 - (3 * b2));
r3 = c2 * (r3_1 / r3_2);
float a3, b3, h;
printf("Ingrese el valor para a ");
scanf("%f", &a3);
printf("Ingrese el valor para b ");
scanf("%f", &b3);
h = sqrt((pow(a3, 2)) + (pow(b3, 2)));
float radio, area;
printf("Ingrese el valor del radio ");
scanf("%f", &radio);
area = pow(radio, 2) * PI;
float precio, total;
printf("Ingrese el precio del producto ");
scanf("%f", &precio);
total = precio * (1 + IVA);
float nota1, nota2, nota3, nota4, nota5, prom;
printf("Ingrese nota 1 ");
scanf("%f", ¬a1);
printf("Ingrese nota 2 ");
scanf("%f", ¬a2);
printf("Ingrese nota 3 ");
scanf("%f", ¬a3);
printf("Ingrese nota 4 ");
scanf("%f", ¬a4);
printf("Ingrese nota 5 ");
scanf("%f", ¬a5);
prom = (nota1 + nota2 + nota3 + nota4 + nota5) / 5;
Impresión de resultados:
printf("Mostrar Resultados ejercicios 3 \n");
printf("El valor de R1 es = %f", r1);
printf("\n El valor de R2 es = %f", r2);
printf("\n El valor de R3 es = %f", r3);
printf("\n El valor de la Hipotenusa es = %.3f", h);
printf("\n El valor del area es = %.3f", area);
printf("\n El valor del precio más iva es = %.3f", total);
printf("\n El valor del promedio es = %.3f", prom);
Sección 4: Condicionales y operadores lógicos
#include
En esta sección, se presentan ejercicios que utilizan estructuras condicionales (if
, else
) y operadores lógicos (&&
, ||
, !
) para evaluar condiciones y tomar decisiones.
Ejercicio 4.1
Se solicita al usuario que ingrese un valor para x
. Luego, se evalúa si x
está en el rango [1, 3) o si x
es mayor que 3. Se imprime»Verdader» si alguna de las condiciones se cumple, y»Fals» en caso contrario.
int x;
printf("Ingrese valor para x : ");
scanf("%d", &x);
if ((x >= 1 && x < 3) || x > 3) {
printf("Verdadero");
} else {
printf("Falso");
}
Ejercicio 4.2
Se solicita al usuario que ingrese un valor para a
. Luego, se evalúa si a
es mayor que 0 y diferente de 3. Se imprime»Verdader» si ambas condiciones se cumplen, y»Fals» en caso contrario.
int a;
printf("\n Ingrese valor para a : ");
scanf("%d", &a);
if (a > 0 && a != 3) {
printf("Verdadero");
} else {
printf("Falso");
}
Ejercicio 4.3
Se solicita al usuario que ingrese un carácter n
. Luego, se verifica si n
es una letra mayúscula, una letra minúscula, un símbolo específico (‘-‘, ‘*’, ‘_’, ‘;’) o un dígito. Se imprime»VERDADER» si es un dígito y»FALS» en los demás casos.
char n;
printf("\n Ingrese valor para n : ");
getchar();
getchar();
putchar(n);
if ((n >= 'A' && n <= 'Z') || (n >= 'a' && n <= 'z')) {
printf("\n FALSO, ES UNA LETRA");
} else {
if (n == '-' || n == '*' || n == '_' || n == ';') {
printf("\n FALSO, es un simbolo");
} else {
printf("\n VERDADERO, es un numero..");
}
}
Ejercicio 4.6
Se solicita al usuario que ingrese una hora y minutos. Luego, se verifica si la hora está entre 0 y 23, y si los minutos están entre 0 y 60. Se imprime un mensaje indicando si la hora es correcta o incorrecta.
int hora, minutos;
printf("Ingrese una hora : ");
scanf("%d", &hora);
printf("Ingrese los minutos : ");
scanf("%d", &minutos);
if (((hora >= 0) && (hora <= 23)) && ((minutos >= 0) && (minutos <= 60))) {
printf("\n La hora %d : %d es correcta ", hora, minutos);
} else {
printf("\n Incorrecta la hora");
}
Sección 5: Conversión de segundos a horas, minutos y segundos
#include
Este programa solicita al usuario que ingrese una cantidad de segundos y la convierte a horas, minutos y segundos.
int h, m, r, s;
do {
printf("Ingrese total de segundos \n ");
scanf("%d", &s);
} while (s < 0);
if (s < 3600 && s >= 60) {
h = 0;
m = s / 60;
s = s - (m * 60);
r = s % 60;
} else {
if (s > 3600) {
h = s / 3600;
s = s - (h * 3600);
if (s >= 60) {
m = s / 60;
s = s - (m * 60);
r = s % 60;
} else {
m = 0;
r = s;
}
} else {
if (s < 60) {
h = 0;
m = 0;
r = s;
}
}
}
printf("\n La cantidad de horas: %d", h);
printf("\n La cantidad de minutos: %d", m);
printf("\n La cantidad de segundos: %d", r);
Sección 6: Suma de dígitos de un número de 4 dígitos
#include
Este programa solicita al usuario que ingrese un número entero positivo de 4 dígitos y calcula la suma de sus dígitos.
int n, s, r;
s = 0;
do {
printf("Ingrese un n° de 4 digitos \n");
scanf("%d", &n);
} while (n < 1000 || n >= 10000);
do {
r = n % 10;
n = n - r;
n = n / 10;
s = s + r;
} while (n >= 10);
s = s + n;
printf("la suma es = %d", s);
Sección 7: Suma de dígitos pares de un número de 4 dígitos
#include
Este programa solicita al usuario que ingrese un número entero positivo de 4 dígitos y calcula la suma de sus dígitos pares.
int n, s, r;
s = 0;
do {
printf("Ingrese un n° de 4 digitos \n");
scanf("%d", &n);
} while (n < 1000 || n >= 10000);
do {
r = n % 10;
n = n - r;
n = n / 10;
if (r % 2 == 0) {
s = s + r;
}
} while (n >= 10);
if (n % 2 == 0) {
s = s + n;
}
printf("la suma es = %d", s);
Sección 8: Clasificación de triángulos
#include
Este programa solicita al usuario que ingrese las longitudes de los tres lados de un triángulo y determina si es equilátero, isósceles o escaleno.
int ladoA, ladoB, ladoC;
printf("Ingresar lado a");
scanf("%d", &ladoA);
printf("Ingresar lado b");
scanf("%d", &ladoB);
printf("Ingresar lado c");
scanf("%d", &ladoC);
if ((ladoA == ladoB) && ((ladoA == ladoC) || (ladoB == ladoC))) {
printf("\n El triangulo es EQUILATERO ");
} else {
if ((ladoB != ladoC) && (ladoB != ladoA) && (ladoA != ladoC)) {
printf("\n El triangulo es ESCALENO");
} else {
printf("\n El triangulo es ISOSCELES");
}
}
Sección 9: Cálculo de cambio en billetes y monedas
#include
Este programa solicita al usuario que ingrese una cantidad de dinero y calcula la cantidad de billetes y monedas de diferentes denominaciones necesarios para entregar esa cantidad.
int c, cd, cc, cm, cq, cien, cv, ccinc, cun;
do {
printf("Ingrese cantidad: ");
scanf("%d", &c);
} while (c >= 2147483647 || c <= 0);
if (c >= 10000) {
cd = c / 10000;
c = c - (cd * 10000);
} else {
c = c;
cd = 0;
}
if (c >= 5000) {
cc = c / 5000;
c = c - (cc * 5000);
} else {
c = c;
cc = 0;
}
if (c >= 1000) {
cm = c / 1000;
c = c - (cm * 1000);
} else {
c = c;
cm = 0;
}
if (c >= 500) {
cq = c / 500;
c = c - (cq * 500);
} else {
c = c;
cq = 0;
}
if (c >= 100) {
cien = c / 100;
c = c - (cien * 100);
} else {
c = c;
cien = 0;
}
if (c >= 25) {
cv = c / 25;
c = c - (cv * 25);
} else {
c = c;
cv = 0;
}
if (c >= 5) {
ccinc = c / 5;
c = c - (ccinc * 5);
} else {
c = c;
ccinc = 0;
}
cun = c;
printf("\n N° billetes de diez mil: %d", cd);
printf("\n N° billetes de cinco mil: %d", cc);
printf("\n N° billetes de mil: $ %d", cm);
printf("\n N° de monedas de Quinientos: $ %d", cq);
printf("\n N° de monedas de cien: $ %d", cien);
printf("\n N° de monedas de Veinticinco: $ %d", cv);
printf("\n N° de monedas de Cinco: $ %d", ccinc);
printf("\n N° de monedas de Un: $ %d", cun);
Sección 10: Cálculo de la edad en un año específico
#include
#define ANIO 2010
Este programa solicita al usuario que ingrese el año actual y su edad actual, y luego calcula la edad que tenía en el año 2010.
int ea, aa, fn, e2010;
printf("Ingrese el anio actual: ");
scanf("%d", &aa);
do {
printf("Ingrese su edad actual: ");
scanf("%d", &ea);
} while (ea < 0 || ea > 110);
fn = aa - ea;
e2010 = ANIO - fn;
printf("Usted tenia para el 2010 : %d ", e2010);
Sección 11: Cálculo de la fuerza gravitacional
#include
#define G 0.0000000000667
Este programa calcula la fuerza gravitacional entre dos masas dadas, utilizando la constante de gravitación universal G.
float m1, m2, r;
double f;
do {
printf("Ingrese masa 1: ");
scanf("%f", &m1);
} while (m1 <= 0);
do {
printf("Ingrese masa 2: ");
scanf("%f", &m2);
} while (m2 <= 0);
do {
printf("Ingrese distancia : ");
scanf("%f", &r);
} while (r < 0);
f = G * ((m1 * m2) / (r * r));
printf("La fuerza gravitacional es: %g ", f);
Sección 12: Tabla de multiplicar
#include
Este programa solicita al usuario que ingrese un número y muestra su tabla de multiplicar del 1 al 10.
float num;
printf(" Ingrese un número: ");
scanf("%f", &num);
for (int i = 1; i <= 10; i++) {
printf("\n %.2f * %d = %.2f ", num, i, (i * num));
}