Ejercicios de Laboratorio en Programación C

Este código genera identificadores de estudiantes aleatorios dentro de rangos específicos usando números aleatorios.


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define CANTIDAD 5
#define RANGO1_INICIO 397
#define RANGO1_FIN 476
#define RANGO2_MAX 21

int main() {
    int contador = 0;
    int tipoAleatorio, idGenerado;
    srand(time(NULL));

    while (contador < CANTIDAD) {
        tipoAleatorio = rand() % 2;
        if (tipoAleatorio) {
            idGenerado = rand() % (RANGO1_FIN - RANGO1_INICIO + 1) + RANGO1_INICIO;
            printf("20248329%04d\n", idGenerado);
        } else {
            idGenerado = rand() % RANGO2_MAX + 1;
            printf("20248395%04d\n", idGenerado);
        }
        contador++;
    }
    return 0;
}

Este programa calcula las raíces de una ecuación cuadrática, manejando casos reales y cmoplejos.


#include <stdio.h>
#include <math.h>

int main() {
    double coeficienteA, coeficienteB, coeficienteC;
    double discriminante, parteReal, parteImaginaria;

    while (scanf("%lf%lf%lf", &coeficienteA, &coeficienteB, &coeficienteC) != EOF) {
        if (coeficienteA == 0) {
            printf("a = 0, entrada inválida\n");
            continue;
        }
        discriminante = coeficienteB * coeficienteB - 4 * coeficienteA * coeficienteC;
        parteReal = -coeficienteB / (2 * coeficienteA);
        parteImaginaria = sqrt(fabs(discriminante)) / (2 * coeficienteA);

        if (discriminante == 0) {
            printf("x1 = x2 = %.2g\n", parteReal);
        } else if (discriminante > 0) {
            printf("x1 = %.2g, x2 = %.2g\n", parteReal + parteImaginaria, parteReal - parteImaginaria);
        } else {
            printf("x1 = %.2g + %.2gi, ", parteReal, parteImaginaria);
            printf("x2 = %.2g - %.2gi\n", parteReal, parteImaginaria);
        }
    }
    return 0;
}

Basado en una antrada de color, el programa emite instrucciones de tráfico simulando un semáforo.


#include <stdio.h>

int main() {
    char colorSemáforo;
    while (scanf("%c", &colorSemáforo) != EOF) {
        if (colorSemáforo == 'r') {
            printf("¡Detenerse!\n");
        } else if (colorSemáforo == 'g') {
            printf("Avanzar\n");
        } else if (colorSemáforo == 'y') {
            printf("Esperar un momento\n");
        } else {
            printf("Entrada no válida\n");
        }
        getchar();
    }
    return 0;
}

Este código calcula el total de gastos, así como el gasto máximo y mínimo de un día, hasta que se introduzca -1.


#include <stdio.h>

int main() {
    double gastoActual, gastoMaximo = 0.0, gastoMinimo = 20000.0, gastoTotal = 0.0;
    printf("Introduzca los gastos del día (-1 para terminar):\n");
    while (1) {
        scanf("%lf", &gastoActual);
        if (gastoActual == -1) {
            break;
        }
        gastoTotal += gastoActual;
        if (gastoActual > gastoMaximo) {
            gastoMaximo = gastoActual;
        }
        if (gastoActual < gastoMinimo) {
            gastoMinimo = gastoActual;
        }
    }
    printf("Total de gastos: %.1lf\n", gastoTotal);
    printf("Gasto máximo: %.1lf\n", gastoMaximo);
    printf("Gasto mínimo: %.1lf\n", gastoMinimo);
    return 0;
}

Dadas tres longitudes, el programa determina el tipo de triángulo: no válido, rectángulo, equilátero, isósceles o común.


#include <stdio.h>

int main() {
    int lado1, lado2, lado3;
    while (scanf("%d%d%d", &lado1, &lado2, &lado3) != EOF) {
        if ((lado1 + lado2) <= lado3 || (lado1 + lado3) <= lado2 || (lado2 + lado3) <= lado1) {
            printf("No forma un triángulo\n");
            continue;
        }
        if (lado1 * lado1 + lado2 * lado2 == lado3 * lado3 ||
            lado1 * lado1 + lado3 * lado3 == lado2 * lado2 ||
            lado2 * lado2 + lado3 * lado3 == lado1 * lado1) {
            printf("Triángulo rectángulo\n");
            continue;
        }
        if (lado1 == lado2 && lado2 == lado3) {
            printf("Triángulo equilátero\n");
            continue;
        }
        if (lado1 == lado2 || lado1 == lado3 || lado2 == lado3) {
            printf("Triángulo isósceles\n");
            continue;
        }
        printf("Triángulo común\n");
    }
    return 0;
}

Un juego donde el usuario intenta adivinar un número aleatorio entre 1 y 30, con un máximo de tres intentos.


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int intento, numeroSecreto, intentosRestantes = 3;
    srand(time(NULL));
    numeroSecreto = rand() % 30 + 1;

    printf("Adivina tu día de suerte en noviembre (1-30):\n");
    while (intentosRestantes > 0) {
        scanf("%d", &intento);
        if (intento == numeroSecreto) {
            printf("¡Correcto, lo adivinaste!\n");
            return 0;
        } else if (intento < numeroSecreto) {
            printf("El número es mayor, intenta de nuevo.\n");
        } else {
            printf("El número es menor, intenta de nuevo.\n");
        }
        intentosRestantes--;
    }
    printf("Se acabaron los intentos. Tu día de suerte era el %d.\n", numeroSecreto);
    return 0;
}

Etiquetas: C programación en C algoritmos estructuras de control generación aleatoria

Publicado el 6-6 01:37