IvoSilva

[PROG2] Ficha 1 | Exercício 3

Mar 4th, 2012
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.19 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int* par (int *v1 , int n , int* m)
  4. {
  5.     int i , j = 0 , *v2 ;
  6.     v2 = (int*) malloc (sizeof(int)) ;
  7.     for (i = 0 ; i < n ; i++)
  8.         if (v1[i] % 2 == 0)
  9.         {
  10.             v2[j++] = v1[i] ;
  11.             v2 = (int*) realloc (v2 , j + 1) ;
  12.         }
  13.     *m = j ;
  14.     return (v2) ;
  15. }
  16. int* impar (int *v1 , int n , int* m)
  17. {
  18.     int i , j = 0 , *v2 ;
  19.     v2 = (int*) malloc (sizeof(int)) ;
  20.     for (i = 0 ; i < n ; i++)
  21.         if (v1[i] % 2 != 0)
  22.         {
  23.             v2[j++] = v1[i] ;
  24.             v2 = (int*) realloc (v2 , j + 1) ;
  25.         }
  26.     *m = j ;
  27.     return (v2) ;
  28. }
  29. main()
  30. {
  31.     int i , n , m , k , *v1 , *v2 , *v3 ;
  32.     printf ("Quantos elementos terá o vector ? ") ;
  33.     scanf ("%d" , &n) ;
  34.     v1 = (int*) malloc (n * sizeof (int)) ;
  35.     for (i = 0 ; i < n ; i++)
  36.     {
  37.         printf ("Introduza o %dº elemento: " , i + 1) ;
  38.         scanf ("%d" , &v1[i]) ;
  39.     }
  40.     v2 = par(v1 , n , &m) ;
  41.     v3 = impar(v1 , n , &k) ;
  42.     printf ("Pares: [") ;
  43.     for (i = 0 ; i < m ; i++) printf (" %d" , v2[i]) ;
  44.     printf (" ]\nImpares: [") ;
  45.     for (i = 0 ; i < k ; i++) printf (" %d" , v3[i]) ;
  46.     printf (" ]\n") ;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment