Programas Es C
El objetivo de esta práctica es afianzar ciertos conceptos básicos de la programación en lenguaje C:
✓ Bucles y tablas.
✓ Entrada y salida de datos.
✓ Paso de argumentos a un programa.
✓ Manejo de archivos.
✓ Funciones.
✓ Uso de memoria dinámica.
EJERCICIOS
1. Escribir un programa (es decir una función main) que pida por teclado unaserie de números enteros, los almacene en una tabla estática y posteriormente escriba por pantalla todos los números introducidos indicando además cual es el mayor y el menor. Lo primero que debe hacer el programa es preguntar al usuario cuantos números se van a introducir y comprobar que dicha cantidad es menor que la dimensión de la tabla. Para dicha dimensión debe definirse una constante (porejemplo MAX_DIMENSION) a la cual se puede asignar un valor razonable (por ejemplo, 100).
Funciones C a utilizar:
✓ scanf: para leer números introducidos por el teclado.
✓ printf: para imprimir por pantalla.
Ejemplo de ejecución: lo que se vería por pantalla debe ser algo así como Introduce la cantidad de números:
3
Introduce los números:
57
2
Los números introducidos son:
5
7
2
El mayor es el 7.
El menor es el 2.
#include
#include
#include
#define OK 1
#define ERR -10001
#define MAX_DIM 100
int enteros[MAX_DIM]; /* Arreglo para guardar los enteros */
int num_total;
int lectura(void);
int sacarpantalla(int max, int min, int num_total);
intcalcular(int *max, int *min, int total);
int es_digito(char caracter[]);
int main()
{
int menor; /* Numero menor */
int mayor; /* Numero mayor */
if (lectura() == ERR)
{
printf("Error al leer el numero de terminos.\n");
return ERR;
}
if (calcular(&mayor, &menor, num_total) == ERR)
{
printf("Error al intentar calcular elmayor y el menor");
return ERR;
}
if (sacarpantalla(mayor, menor, num_total) == ERR)
{
printf("Error al mostrar por pantalla.\n");
return ERR;
}
return OK;
}
/*********************************************************
* Funcion: int lectura(int *total)
* IN: Toma una variable tipo int.
* OUT: Devuelve OK si se ha leido correctamente, ERR si hayalgun fallo.
* MAKE: Obtiene los numeros que introduce el usuario y los guarda
* en un arreglo de enteros
**********************************************************/
int lectura(void)
{
int continuar = OK;
int n;
char numeros[MAX_DIM];
for (n = 0; n < (int) strlen(numeros); n++)
numeros[n] = '0';
printf("\nCuantos numeros va a introducir? --> ");
do {gets(numeros);
continuar = OK;
if ((num_total = es_digito(numeros)) == ERR)
continuar = ERR;
if (num_total enteros[n])
*min = enteros[n];
if (*max < enteros[n])
*max = enteros[n];
}
return OK;
}
/*********************************************************
* Funcion: int sacarpantalla(int max, int min, int num_total)
** IN: toma el valor maximo,minimo y total deelementos
* OUT: devuelde ERR si no puede y OK si puede
* MAKE: Nada
**********************************************************/
int sacarpantalla(int max, int min, int num_total)
{
int n;
printf("Los numeros introducidos son: ");
for (n = 0; n < num_total; n++)
printf("%d, ", enteros[n]);
printf("\nMinimo: %d", min);
printf("\nMaximo: %d\n", max);
return OK;
}/*********************************************************
* Funcion: int es_digito(char caracter)
** IN: Se le da una serie de caracteres para que se pasen a numero
* OUT: Nos devolvera ERR si se produce un eroor
* MAKE: Comprueba la integridad de los datos
**********************************************************/
int es_digito(char caracter[])
{
int i;
int num = 0;
int...
Regístrate para leer el documento completo.