0% encontró este documento útil (0 votos)
254 vistas12 páginas

Programas en C para Números Enteros

El documento contiene 10 ejemplos de programas en C que resuelven diferentes problemas matemáticos y lógicos. Cada ejemplo presenta el código fuente de un programa en C, junto con una breve descripción del problema a resolver, como determinar si números son pares o impares, calcular el máximo común divisor, descomponer un número en factores primos, y resolver ecuaciones de segundo grado.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
254 vistas12 páginas

Programas en C para Números Enteros

El documento contiene 10 ejemplos de programas en C que resuelven diferentes problemas matemáticos y lógicos. Cada ejemplo presenta el código fuente de un programa en C, junto con una breve descripción del problema a resolver, como determinar si números son pares o impares, calcular el máximo común divisor, descomponer un número en factores primos, y resolver ecuaciones de segundo grado.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ejemplo1: /* Escribir un programa en lenguaje C que: Lea los nmeros enteros a, b, c y d, e imprima luego dichos nmeros y; a) Si son positivos,

un mensaje que indique, para cada uno de ellos, si es par o impar; b) Un mensaje de error en caso contrario */ #include <stdio.h> void cls(void); main() { int a, b, c, d; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN Ejemplo 1\n\n\n"); printf("\n\t\tDigte cuatro nmero enteros positivos: "); scanf("%d %d %d %d", &a, &b, &c, &d); if ( a > 0 && b > 0 && c > 0 && d > 0 ) { if ( a%2 == 0) { printf("\n\t\tEl primer nmero %d es par", a); } else { printf("\n\t\tEl primer nmero %d es impar", a); } if ( b%2 == 0) { printf("\n\t\tEl segundo nmero %d es par", b); } else { printf("\n\t\tEl segundo nmero %d es impar", b); } if ( c%2 == 0) { printf("\n\t\tEl tercer nmero %d es par", c); } else { printf("\n\t\tEl tercer nmero %d es impar", c); } if ( d%2 == 0) { printf("\n\t\tEl cuarto nmero %d es par\n\n", d); } else { printf("\n\t\tEl cuarto nmero %d es impar\n\n", d); } } else { printf("\n\t\tLos nmero dados %d, %d, %d, %d no son todos positivos\n\n", a, b, c, d); } } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo2: /* Escribir un programa en lenguaje C que: Lea los nmeros enteros a, b, c y d e imprima luego dichos nmeros y; a) Si son positivos, un mensaje que indique, para cada uno de ellos, si es o no mltiplo de 5; b) Un mensaje de error en caso contrario. */ #include <stdio.h>

void cls(void); main() { int a, b, c, d; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS02\n\n\n"); printf("\n\t\tDigte cuatro nmeros enteros positivos: "); scanf("%d %d %d %d", &a, &b, &c, &d); if ( a > 0 && b > 0 && c > 0 && d > 0 ) { if ( a%5 == 0) { printf("\n\t\tEl primer nmero %d es mltiplo de 5", a); } else { printf("\n\t\tEl primer nmero %d no es mltiplo de 5", a); } if ( b%5 == 0) { printf("\n\t\tEl segundo nmero %d es mltiplo de 5", b); } else { printf("\n\t\tEl segundo nmero %d no es mltiplo de 5", b); } if ( c%5 == 0) { printf("\n\t\tEl tercer nmero %d es mltiplo de 5", c); } else { printf("\n\t\tEl tercer nmero %d no es mltiplo de 5", c); } if ( d%5 == 0) { printf("\n\t\tEl cuarto nmero %d es mltiplo de 5\n\n", d); } else { printf("\n\t\tEl cuarto nmero %d no es mltiplo de 5\n\n", d); } } else { printf("\n\t\tLos nmeros dados %d, %d, %d, %d no son todos positivos\n\n", a, b, c, d); } } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo3: /* Escriba un programa en lenguaje C que: Lea los nmeros enteros a, b, c y d e imprima luego dichos nmeros y; a) Si son positivos, un mensaje que indique, si son o no trminos de una progresin aritmtica, b) Un mensaje de error en caso contrario. */ #include <stdio.h> void cls(void); main() { int a, b, c, d; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS03\n\n\n"); printf("\n\t\tDigite cuatro nmeros enteros positivos: "); scanf("%d %d %d %d", &a, &b, &c, &d); if ( a > 0 && b > 0 && c > 0 && d > 0 )

{ if ( b - a == c - b && c - b == d - c) { printf("\n\t\tLos nmeros %d, %d, %d y %d son trminos de una progresin aritmtica", a, b, c, d); } else { printf("\n\t\tLos nmeros %d, %d, %d y %d no son trminos de una progresin aritmtica", a, b, c, d); } } else { printf("\n\t\tLos nmeros dados %d, %d, %d, %d no son todos positivos\n\n", a, b, c, d); } } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo4: /* Escribir un programa en lenguaje C que: Lea los nmeros enteros a, b, c y d e imprima luego dichos nmeros y; a) Si son positivos, un mensaje que indique, si son o no trminos de una progresin geomtrica, b) Un mensaje de error en caso contrario. */ #include <stdio.h> void cls(void); main() { int a, b, c, d; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS04\n\n\n"); printf("\n\t\tDigite cuatro nmeros enteros positivos: "); scanf("%d %d %d %d", &a, &b, &c, &d); if ( a > 0 && b > 0 && c > 0 && d > 0 ) { if ( b/a == c/b && c/b == d/c) { printf("\n\t\tLos nmeros %d, %d, %d y %d son trminos de una progresin geomtrica", a, b, c, d); } else { printf("\n\t\tLos nmeros %d, %d, %d y %d no son trminos de una progresin geomtrica", a, b, c, d); } } else { printf("\n\t\tLos nmeros dados %d, %d, %d, %d no son todos positivos\n\n", a, b, c, d); } } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo5: /* Escribir un programa en lenguaje C que: Lea los nmeros enteros a, b, c y d e imprima luego dichos nmeros y; a) Si son positivos, un mensaje que indique, si estn o no ordenados en secuencia ascendente,

b) Un mensaje de error en caso contrario. */ #include <stdio.h> void cls(void); main() { int a, b, c, d; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS05\n\n\n"); printf("\n\t\tDigite cuatro nmeros enteros positivos: "); scanf("%d %d %d %d", &a, &b, &c, &d); if ( a > 0 && b > 0 && c > 0 && d > 0 ) { if ( a < b && b < c && c < d) { printf("\n\t\tLos nmeros %d, %d, %d y %d estn en secuencia ascendente\n\n", a, b, c, d); } else { printf("\n\t\tLos nmeros %d, %d, %d y %d no estn en secuencia ascendente\n\n", a, b, c, d); } } else { printf("\n\t\tLos nmeros dados %d, %d, %d, %d no son todos positivos\n\n", a, b, c, d); } } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo6: /* Escribir un programa en lenguaje C que: Permita determinar el mximo comn divisor de dos nmeros enteros y positivos a y b, utilizando el algoritmo de Euclides. Imprima adems el mnimo comn mltiplo de los mismos. */ #include <stdio.h> void cls(void); main() { int a, b, p, q, r, mcd, mcm; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS06\n\n\n"); printf("\n\n\t\t Digite dos nmeros enteros y positivos "); scanf("%d %d", &a, &b); while ( a <= 0 || b <= 0 ) { printf("\n\t\t Los nmeros deben ser positivos, digite nuevamete, "); scanf("%d %d", &a, &b); } if (a < b) { p = b; q = a; } else { p = a; q = b; } r = p%q; while ( r != 0 )

} void cls(void) { printf("\033[2J"); printf("\033[0;0f"); }

{ p = q; q = r; r = p%q; } mcd = q; mcm = a*b/mcd; printf("\n\n\t\t\t mcd( %d, %d) = %d", a, b, mcd); printf("\n\n\t\t\t mcm( %d, %d) = %d \n\n", a, b, mcm);

/* Limpia la pantalla */ /* Mueve el cursor en la esquina superior izquierda */

Ejemplo7: /* Escribir un programa en lenguaje C que: Permita determinar si un nmero entero dado n es primo. */ #include <stdio.h> #include <math.h> void cls(void); main() { int a, ls, q, r; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS07\n\n\n"); printf("\t\tDigite un nmero entero y positivo "); scanf("%d", &a); if ( a > 0 ) { q = 2; r = a%q; ls = sqrt(a); while ( r != 0 && q < ls ) { q = q + 1; r = a%q; } if ( r != 0 ) { printf("\n\n\t\tEl nmero %d es primo\n\n", a); } else { printf("\n\n\t\tEl nmero %d no es primo\n\n", a); } } else { printf("\n\n\t\tEl nmero %d debe ser positivo\n\n", a); } } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo8: /* Escribir un programa en lenguaje C que:

Permita descomponer un nmero entero dado n en sus factores primos. */ #include <stdio.h> void cls(void); main() { int p, q, a, n; int factor[10][2]; cls(); printf("\n\t\t\t\tFacultad de Ingeniera - COMPUTACIN - Ejercicio VS08\n\n\n"); printf("\t\tDigite un nmero entero y positivo "); scanf("%d", &a); while ( a <= 0 ) { printf("\tEl nmero debe ser positivo, digite nuevamente, "); scanf("%d", &a); } n = 0; p = a; q = 1; while ( p > 1 ) { q = q + 1; if ( p%q == 0 ) { n = n + 1; factor[n][1] = q; factor[n][2] = 1; p = p/q; while (p%q == 0) { factor[n][2] = factor[n][2] + 1; p = p/q; } } } printf("\n\n\t\t\tFactor Exponente (De la descomposicin en factores primos)\n"); for ( p = 1; p <= n; p++ ) { printf("\t\t\t%4i%10i\n", factor[p][1], factor[p][2]); } printf("\n"); } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo9: /* Escribir un programa en lenguaje C que: Acepte como datos los coeficientes a, b y c, de una ecuacin de segundo grado, e imprima sus races. */ #include <stdio.h> // Para poder llamar a scanf() y printf() #include <math.h> // Para poder utilizar funciones matemticas void cls(void); // Funcin que permite limpiar la pantalla main() { float a, b, c, d, x1, x2; // Declaracin de variables como nmero de punto flotante cls();

} void cls(void) { printf("\033[2J"); printf("\033[0;0f"); }

printf("Digite los coeficientes a, b y c de la ecuacin de segundo grado: " ); scanf("%f %f %f", &a, &b, &c); // Al digitar, separar cada nmero con blancos while ( a == 0 ) { printf("\nEl coeficiente a no puede ser cero, digite nuevamente la terna:"); scanf("%f %f %f", &a, &b, &c); } d = b*b - 4*a*c; if ( d < 0 ) { x1 = -b/2/a; x2 = sqrt((-d))/2/a; printf("Las races son : %8.3f %8.3fi\n", x1, x2); } else { d = sqrt(d); x1 = (-b - d)/2/a; x2 = (-b + d)/2/a; printf("Las races son : %8.3f y %8.3f\n", x1, x2); } // void cls(void) porque no devuelve valor y no tiene argumentos /* Limpia la pantalla */ /* Mueve el cursor en la esquina superior izquierda */

Ejemplo10: /* Escribir un programa en lenguaje C que: Acepte como dato un nmero entero n e imprima dos nmeros que representan, respectivamente, la suma de los nmeros naturales pares e impares menores o iguales al nmero dado. */ #include <stdio.h> // Para poder llamar a scanf() y printf() #include <math.h> // Para poder utilizar funciones matemticas void cls(void); // Funcin que permite limpiar la pantalla main() { int i, n, spar, simp; // Declaracin de variables como nmero de punto flotante cls(); printf("\n\t\t\tDigite un nmero entero y positivo: " ); scanf("%d", &n); // Lectura del nmero natural. while ( n <= 0 ) { printf("\n\t\tEl nmero debe ser positivo, digite nuevamente: "); scanf("%f", &n); } printf("\n"); if ( n%2 == 0 ) { spar = (n + 2)*n/4; simp = n*n/4; printf("\n\t\tLa suma de los pares menores o iguales a %d es %d \n", n, spar); printf("\n\t\tLa suma de los impares menores a %d es %d \n\n\n", n, simp); }

} void cls(void) { printf("\033[2J"); printf("\033[0;0f"); }

else { spar = (n + 1)*(n - 1)/4; simp = (n + 1)*(n + 1)/4; printf("\n\t\tLa suma de los pares menores a %d es %d \n", n, spar); printf("\n\t\tLa suma de los impares menores o iguales a %d es %d \n\n\n", n, simp); } // void cls(void) porque no devuelve valor y no tiene argumentos /* Limpia la pantalla */ /* Mueve el cursor en la esquina superior izquierda */

Ejemplo11: /* Escribir un programa en lenguaje C que: Acepte como dato tres nmeros enteros y positivos, dd, mm, aa, verifique si constituyen una fecha vlida en el formato da/mes/ao e imprima la fecha del da siguiente. */ #include <stdio.h> void cls(void); main() { int dd, mm, aa, ds, ms, as, fv, ab; int abis[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int anbis[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; cls(); printf ("\n\tDigite el da, mes y el ao de una fecha: "); scanf ("%02d %02d %02d", &dd, &mm, &aa); // Verificacin de la validez de la fecha leda fv = 1; // fv = 1 si la fecha es vlida, 0 en caso contrario ab = 0; // ab = 1 si es ao bisiesto, 0 en caso contrario if ( aa%4 == 0 ) { ab = 1; } if ( dd > 0 && mm > 0 && aa >= 0 ) { if ( mm < 13 ) { if ( ab == 1 ) { if ( dd > abis[mm - 1] ) { fv = 0; } } else { if ( dd > anbis[mm - 1] ) { fv = 0; } } } else { fv = 0; } } else { fv = 0; } // Determinacin de la fecha del da siguiente if ( fv == 1 ) { ds = dd + 1; if ( ab == 1 ) { if ( ds <= abis[mm - 1] ) { ms = mm;

} void cls(void) { printf("\033[2J"); printf("\033[0;0f"); }

as = aa; } else { ds = 1; ms = mm + 1; as = aa; if ( ms > 12 ) { ms = 1; as = aa + 1; } } } else { if ( ds <= anbis[mm - 1] ) { ms = mm; as = aa; } else { ds = 1; ms = mm + 1; as = aa; if ( ms > 12 ) { ms = 1; as = aa + 1; } } } printf ("\n\t\t\t%02d/%02d/%02d es una fecha vlida", dd, mm, aa); printf ("\t - \tLa fecha del da siguiente es %02d/%02d/%02d\n\n", ds, ms, as); } else { printf ("\n\t\t\t%02d/%02d/%02d no es una fecha vlida\n\n", dd, mm, aa); }

/* Limpia la pantalla */ /* Mueve el cursor en la esquina superior izquierda */

Ejemplo12: /* Escribir un programa en lenguaje C que: Calcule las suma de los primeros cincuenta (n = 1, 2, 3, ..., 50) trminos de la serie: suma(7sen (3nx)cos(nx)), para x = 2,5. */ #include <stdio.h> #include <math.h> #define nmax 50 #define x 2.5 void cls(void); main() { int n; float suma; cls(); suma = 0; for ( n = 1; n <= nmax; n++ ) { suma += 7*sin(3*n*x)*cos(n*x); } printf ("\n\t\t\tLa suma de los %d primeros trminos de la serie, para x = %4.2f, es %f\n\n", nmax, x, suma);

} void cls(void) { printf("\033[2J"); printf("\033[0;0f"); }

/* Limpia la pantalla */ /* Mueve el cursor en la esquina superior izquierda */

Ejemplo13: /* Escribir un programa en lenguaje C que: Calcule exp(x) a partir de la frmula exp(x) = 1 + x + x*x/2! + x*x*x/3! + ... tomando un nmero de trminos, tal que el ltimo sumando sea menor que 10E-5. */ #include <stdio.h> #include <math.h> #define tol 0.00001 void cls(void); main() { int i, n; float factn, x, potx, suma, ultsum; cls(); printf ("\n\t\t\tDigite el valor de x (potencia de e): "); scanf ("%f", &x); ultsum = x; suma = 1; n = 0; potx = 1; while ( ultsum > tol ) { n++; potx *= x; factn = 1; for ( i = 1; i <= n; i++ ) { factn *= i; } suma += potx/factn; ultsum = potx/factn; } printf("\n\n\t\tCon n = %d y el sumando no tomado = %f se tiene que exp(%f) = %f \n\n\n", n+1, ultsum, x, suma); } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ } Ejemplo14: /* Escribir un programa en lenguaje C que: Lea un conjunto de nmeros positivos e imprima luego el menor y mayor de ellos. */ #include <stdio.h> void cls(void); main()

int i, n; float a, men, may; cls(); printf ("\n\t\t\t\tDigite el nmero de datos a considerar: "); scanf ("%d", &n); printf ("\n\t\t\tDigite el primer dato a considerar : "); scanf ("%f", &a); men = a; may = a; for ( i = 1; i < n; i++ ) { printf ("\t\t\tDigite el siguiente dato a considerar: "); scanf ("%f", &a); if ( a < men ) men = a; if ( a > may ) may = a; } printf("\n\n\t\tDe los %d datos el menor es %f y el mayor es %f\n\n", n, men, may);

} void cls(void) { printf("\033[2J"); printf("\033[0;0f"); }

/* Limpia la pantalla */ /* Mueve el cursor en la esquina superior izquierda */

Ejemplo15: /* Escribir un programa en lenguaje C que: Lea sucesivas ternas de nmeros a, b y c, e imprima uno de los siguientes mensajes, los nmeros dados y segn corresponda: a) estn en progresin aritmtica, b) estn en progresin geomtrica, c) estn en progresin armnica, d) no estn en progresin aritmtica ni geomtrica ni armnica. La condicin de fin es a = b = c = 0. */ #include <stdio.h> void cls(void); main() { int lg; float a, b, c; cls(); printf ("\n\t\t\t\tDigite tres nmeros: "); scanf ("%f %f %f", &a, &b, &c); while ( a != 0 || b != 0 || c != 0 ) { lg = 1; if ( 2*b == a + c ) { lg = 0; printf ("\n\t\t\tLos nmeros dados estn en progresin aritmtica"); } if ( b*b == a*c ) { lg = 0; printf ("\n\t\t\tLos nmeros dados estn en progresin geomtrica"); }

if ( 2/b == 1/a + 1/c ) { lg = 0; printf ("\n\t\t\tLos nmeros dados estn en progresin armnica"); } if ( lg == 1 ) { printf ("\n\t\t\tLos nmeros dados no estn en progresin aritmtica ni geomtrica ni armnica"); } printf ("\n\n\t\t\t\tDigite tres nmeros: "); scanf ("%f %f %f", &a, &b, &c); } printf("\n\n"); } void cls(void) { printf("\033[2J"); /* Limpia la pantalla */ printf("\033[0;0f"); /* Mueve el cursor en la esquina superior izquierda */ }

También podría gustarte