Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em programa simples de array


Ariel98

Pergunta

Eu tenho que criar um programa que resolva esse problema:

                "Faça uma função que receba um vetor X de 30 elementos inteiros, por parâmetro, e

                 retorne dois vetores A e B. O vetor A deve conter os elementos pares e o vetor B, os

                 elementos ímpares."

Meu código:

#include <stdio.h>

#define TAM 6

void geraVetor(int[], int[], int[], int*, int*); /*Recebe X, A e B*/

int main()
{
	int X[TAM], A[30], B[30], i, tamA=0, tamB=0;
	
	//Lendo o vetor X.
	for(i=0; i<TAM; i++){
		printf("Entre com o valor %d: ", i+1);
		scanf("%d", &X[i]);
	}
	
	geraVetor(X, A, B, &tamA, &tamB);
	
	printf("Vetor X:\n\n");
	for(i=0; i<TAM; i++)
		printf("%d\n", X[i]);
	
	printf("\nVetor A:\n\n");
	for(i=0; i<tamA; i++)
		printf("%d\n", A[i]);
	
	printf("\nVetor B:\n\n");
	for(i=0; i<tamB; i++)
		printf("%d\n", B[i]);
	
	return 0;
}

void geraVetor(int X[], int A[], int B[], int *tamA, int *tamB){
	int i;
	
	for(i=0; i<TAM; i++){
		if(X[i]%2 == 0){
			A[*tamA] = X[i];
			*tamA++;
		}
		else{
			B[*tamB] = X[i];
			*tamB++;
		}
	}
}

Quando eu vou imprimir os arrays A e B o programa só deixa um espaço vazio.

OBS: Ele imprime os valores de X.

 

Se alguém conseguir achar os meus erros, eu agradeço muito!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Pelo que entendi o problema está nas linhas:

*tamA++;

e

*tamB++;

Ao invés de incrementar o conteúdo da variável passada por parâmetro, deve estar incrementando a posição do ponteiro. Fiz um teste, declarei uma variável inteira e fiz o incremento nela e depois retornei seu valor para o conteúdo de memória apontado pelo ponteiro. Como não conheço quase nada da linguagem, acho talvez deva existir uma maneira mais simples e elegante de se fazer isso. Segue abaixo o trecho que modifiquei referente ao tamA:

itemp = *tamA;
itemp++;
*tamA=itemp;

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...