Ejercicios resueltos de programación en C: Variables, Operadores, Condicionales y Bucles

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 llamada interes y se le asigna el valor 0.05, que representa un 5% de interés.
float interes = 0.05;
  • b) Bono: Se declara una variable de tipo int llamada bono y se le asigna el valor 32600.
int bono = 32600;
  • c) Tipo: Se declara una variable de tipo char llamada tipo y se le asigna el valor 'B'.
char tipo = 'B';
  • d) Precio: Se declara una variable de tipo float llamada precio y se le asigna el valor 489.67.
float precio = 489.67;
  • e) Valor: Se declara una variable de tipo int llamada valor y se le asigna el valor 0, que en este contexto representa false.
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 tipo int y z de tipo float, sin asignarles valores iniciales.
  • 3.2: Se declara una variable de tipo char llamada variable y se le asigna el valor '@'.
  • 3.3: Se declara una variable de tipo unsigned int llamada entera, sin asignar un valor inicial.
  • 3.4: Se declaran dos variables de tipo char, uno con valor '9' y dos con valor '_'.
  • 3.5: Se declara una variable de tipo unsigned int llamada entera2 y se le asigna el valor 1.

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 entre 6 y se almacena el resultado en la variable n1 de tipo float.
  • 1.b: Se calcula el resto de la división de 21 entre 5 y se almacena el resultado en la variable n2 de tipo int.
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 en n3.
  • 2.2: Se calcula la expresión -4 * 5 * 3 y se almacena el resultado en n4.
  • 2.3: Se calcula la expresión ((10 + 4) / (2 - 3)) * 5 y se almacena el resultado en n5.
  • 2.4: Se solicita al usuario que ingrese dos números, x y b, y luego se calcula la expresión (x / b) / (x * b), almacenando el resultado en n6.
  • 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 calcula c elevado a la cuarta potencia, dividido por 4, almacenando el resultado en r1.
  • 3.2: Se solicitan tres valores al usuario (a1, b1, c1) y se calcula una expresión compleja, almacenando el resultado en r2.
  • 3.3: Se solicitan tres valores al usuario (a2, b2, c2) y se calcula otra expresión, almacenando el resultado en r3.
  • 3.4: Se solicitan dos valores al usuario (a3, b3) que representan los catetos de un triángulo rectángulo, y se calcula la hipotenusa h.
  • 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", &nota1);
printf("Ingrese nota 2 ");
scanf("%f", &nota2);
printf("Ingrese nota 3 ");
scanf("%f", &nota3);
printf("Ingrese nota 4 ");
scanf("%f", &nota4);
printf("Ingrese nota 5 ");
scanf("%f", &nota5);
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));
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.