#include <stdio.h>
#include <stdlib.h>
/* Vector con memoria dinámica (malloc, calloc y free) */
void IngresarVector(int * v, int size);
void MostrarVector(int * v, int size);
int Maximo(int * v, int size);
int Minimo(int * v, int size);
float Promedio(int * v, int size);
int main(int argc, char *argv[])
{
int sizev, *v;
// Cantidad de elementos del vector
printf("Ingrese la cantidad de elementos del vector: ");
scanf("%d", &sizev);
// Inicialización del vector en la memoria dinámica (heap)
v = (int *)calloc(sizev, sizeof(int));
// Ingreso de elementos
if(v == NULL)
{
printf("Error:\n");
printf("\tNo hay memoria disponible.\n");
system("PAUSE");
return 1;
}
IngresarVector(v, sizev);
// Mostrar valores de la lista
MostrarVector(v, sizev);
// Valor máximo, mínimo y promedio
printf("Valor maximo del vector: %d\n", Maximo(v, sizev));
printf("Valor minimo del vector: %d\n", Minimo(v, sizev));
printf("Valor promedio del vector: %.2f\n", Promedio(v, sizev));
// Liberar memoria
free(v);
system("PAUSE");
return 0;
}
void IngresarVector(int * v, int size)
{
int i;
for(i = 0; i < size; i++)
{
printf("Ingrese el valor del elemento v[%d] = ", i+1);
scanf("%d", &v[i]);
}
}
void MostrarVector(int * v, int size)
{
int i;
printf("Mostrar vector: \n");
for(i = 0; i < size; i++)
{
printf("v[%d]: %d ", i+1, v[i]);
}
printf("\n");
}
int Maximo(int * v, int size)
{
int i;
int max = v[0];
for(i = 1; i < size; i++)
{
if(max < v[i])
max = v[i];
}
return max;
}
int Minimo(int * v, int size)
{
int i;
int min = v[0];
for(i = 1; i < size; i++)
{
if(min > v[i])
min = v[i];
}
return min;
}
float Promedio(int * v, int size)
{
int i;
int sum = 0;
float prm = 0;
for(i = 0; i < size; i++)
{
sum += v[i];
}
prm = (float)sum/size;
return prm;
}
Comments