Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct {
- int *ptr;
- int dim;
- } Vector;
- int main (void)
- {
- Vector v1, v2;
- int i,j;
- printf("Digite o tamanho do vetor1: ");
- scanf("%d", &v1.dim);
- if (v1.dim%2!=0 )
- {
- v2.dim = v1.dim/2;
- v2.dim++;
- }
- else
- {
- v2.dim = v1.dim/2;
- }
- //alocando o primeiro vetor
- if(!(v1.ptr = (int*) malloc (v1.dim * sizeof(int)))){
- printf("Erro de Memoria\n");
- system("pause");
- exit(1); //sair do programa
- }
- //alocando o segundo vetor
- if(!(v2.ptr = (int*) malloc (v2.dim * sizeof(int)))){
- printf("Erro de Memoria\n");
- system("pause");
- exit(1); //sair do programa
- }
- //preencher o vetor original
- printf("\n\nAgora digite abaixo os elementos do vetor:\n\n");
- for(i=0;i<v1.dim;i++)
- {
- printf("Digite o elemento %d: ",i+1);
- scanf("%d", (i+v1.ptr));
- }
- //printando o vetor original
- printf("\n");
- printf("Vetor original: [ ");
- for (i=0; i<v1.dim;i++)
- {
- printf("%d ", *(i+v1.ptr) );
- }
- printf("]");
- printf("\n");
- // preenchendo o segundo vetor
- for(i=0, j=0; j<v2.dim ;i=i+2, j++)
- {
- *(j+v2.ptr) = *(i+v1.ptr);
- }
- //printando o novo vetor
- printf("Novo vetor: [ ");
- for (j=0; j<v2.dim; j++)
- {
- printf("%d ", *(j+v2.ptr));
- }
- printf("]");
- printf("\n");
- printf("\n");
- //desalocando os dois vetores da memória
- free(v1.ptr);
- free(v2.ptr);
- system("PAUSE");
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment