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;
}