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

Vetor


viciado

Pergunta

Faça uma sub-rotina que receba um vetor X de 30 elementos inteiros como parâmetro e retorne dois vetores A e B. O vetor A deve conter os elementos de X que sejam maiores do que zero e o vetor B, os elementos menores ou iguais a zero.

É assim que retorna o vetor ?

Como posso imprimir os vetores A e B na main se não sei os seus tamanhos

#include <stdio.h>
#include <stdlib.h>
int vetora(int x[10]){
    int i;
    int a[30];
    int j = 0;
    for(i=0;i<30;i++){
            if(x[i] > 0){
                    a[j] = x[i];
                    j++;
                    }
                    }
    return (a);
}
int vetorb(int x[10]){
    int i;
    int b[30];
    int j = 0;
    for(i=0;i<30;i++){
            if(x[i] <= 0){
                    b[j] = x[i];
                    j++;
                    }
                    }
    return (b);
}
int main()
{
  int x[30];
  int i;
  for(i=0;i<30;i++){
              printf("Preencha o vetor X[%d] \n",i);
              scanf("%d",&x[i]);
              }
  system("PAUSE");    
  return 0;
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Boa noite viciado,

cara, quando você não sabe o tamanho do vetor você pode fazer como no exemplo:

int *VET, V;
cout << "Digite o tamanho do vetor: ";
cin >> V;
VET = (int *)malloc(V * sizeof(int));[/CODEBOX]

Quando você declara um vetor com um asterisco na frente quer dizer que o vetor não tem tamanho definido. O V no caso é o tamanho do vetor, que cada vez que o programa for executado irá mudar. No seu caso, acho que você poderia fazer o seguinte, declare os vetores A e B com o asterisco na frente porque eles não tem tamanho definido e coloque dois contadores, um pra quando o número for menor ou igual a 0 e outro quando o número for maior que zero, assim você vai saber qual deverá ser o tamanho dos vetores A e B:

[CODEBOX]for (i = 0; i < 30; i++)
{
printf("Preencha o vetor X[%d] \n",i);
scanf("%d",&X[i]);
if (X[i] > 0)
CONT1++;
if (X[i] <= 0)
CONT2++;
}
A = (int *)malloc(CONT1 * sizeof(int));
B = (int *)malloc(CONT2 * sizeof(int));

é isso aí cara, não sei se deu pra intender +/- mas qualquer dúvida posta aí que tento explicar melhor, e depois posta se conseguiu fazer certinho dessa forma ou de qualquer outra forma. VLW . . . ! ! ! :)

Editado por Risadão
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,2k
    • Posts
      652k
×
×
  • Criar Novo...