marcoshuck

Vectores con memoria dinámica

Dec 15th, 2016
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* Vector con memoria dinámica (malloc, calloc y free) */
  5.  
  6. void IngresarVector(int * v, int size);
  7. void MostrarVector(int * v, int size);
  8. int Maximo(int * v, int size);
  9. int Minimo(int * v, int size);
  10. float Promedio(int * v, int size);
  11.  
  12. int main(int argc, char *argv[])
  13. {
  14.     int sizev, *v;
  15.     // Cantidad de elementos del vector
  16.     printf("Ingrese la cantidad de elementos del vector: ");
  17.     scanf("%d", &sizev);
  18.     // Inicialización del vector en la memoria dinámica (heap)
  19.     v = (int *)calloc(sizev, sizeof(int));
  20.     // Ingreso de elementos
  21.     if(v == NULL)
  22.     {
  23.         printf("Error:\n");
  24.         printf("\tNo hay memoria disponible.\n");
  25.         system("PAUSE");
  26.         return 1;
  27.     }
  28.     IngresarVector(v, sizev);
  29.     // Mostrar valores de la lista
  30.     MostrarVector(v, sizev);
  31.     // Valor máximo, mínimo y promedio
  32.     printf("Valor maximo del vector: %d\n", Maximo(v, sizev));
  33.     printf("Valor minimo del vector: %d\n", Minimo(v, sizev));
  34.     printf("Valor promedio del vector: %.2f\n", Promedio(v, sizev));
  35.     // Liberar memoria
  36.     free(v);
  37.     system("PAUSE");   
  38.     return 0;
  39. }
  40.  
  41. void IngresarVector(int * v, int size)
  42. {
  43.     int i;
  44.     for(i = 0; i < size; i++)
  45.     {
  46.         printf("Ingrese el valor del elemento v[%d] = ", i+1);
  47.         scanf("%d", &v[i]);
  48.     }
  49. }
  50.  
  51. void MostrarVector(int * v, int size)
  52. {
  53.     int i;
  54.     printf("Mostrar vector: \n");
  55.     for(i = 0; i < size; i++)
  56.     {
  57.         printf("v[%d]: %d ", i+1, v[i]);
  58.     }
  59.     printf("\n");
  60. }
  61.  
  62. int Maximo(int * v, int size)
  63. {
  64.     int i;
  65.     int max = v[0];
  66.     for(i = 1; i < size; i++)
  67.     {
  68.         if(max < v[i])
  69.             max = v[i];
  70.     }
  71.     return max;
  72. }
  73.  
  74. int Minimo(int * v, int size)
  75. {
  76.     int i;
  77.     int min = v[0];
  78.     for(i = 1; i < size; i++)
  79.     {
  80.         if(min > v[i])
  81.             min = v[i];
  82.     }
  83.     return min;
  84. }
  85.  
  86. float Promedio(int * v, int size)
  87. {
  88.     int i;
  89.     int sum = 0;
  90.     float prm = 0;
  91.     for(i = 0; i < size; i++)
  92.     {
  93.         sum += v[i];
  94.     }
  95.     prm = (float)sum/size;
  96.     return prm;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment