Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
gprilopes

RESOLVIDO Imprimir o índice par e impar de 2 vetores

Recommended Posts

Olá meus caros,

 

Preciso de uma ajuda:

 

Preciso criar 4 vetores, a,b,c,d o vetor a e b vão receber valores, mas eu preciso armazenar no vetor c os índices par e no vetor d o índices impar:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quantos valores? serao posto no vetor A,B? não seria mais fácil um vetor contendo todos elemento e depois dois vetores separado por indices os pares e os impar?
Quando chegar em casa faço esse programa!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Ler 6 elementos (valores inteiros) para os vetores A e B. Construir o
    vetor C e com o mesmo tipo e dimensão, sendo que o vetor C deve ser
    formado pelos elementos de índice ímpar dos vetores A e B, e o vetor D
    deve ser formada pelos elementos de índice par dos vetores A e B.
    Apresentar os vetores C e D.

    Eu consegui fazer apanas com um vetor

     

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    main (){ // PONTO BOM
        
            int a[5];
            int b[5];
            int c[5];
            int d[5];
            int i,j;
            
            // FOR PARA LER NUMEROS
            for (i=0;i<5;i++){
                
                printf ("Digite um numero:\n");
                scanf ("%d",&a);
                
            }
            
            for (i=0;i<5;i++){
                
                if (i % 2 == 0){
                    
                    c = i;
                    
                    printf ("Par: %d\n",c);
                }
                            
            }    
            
            for (i=0;i<5;i++){
                
                if (i % 2 != 0){
                    
                    d = i;
                    
                    printf ("Impar: %d\n",d);
                }
                            
            }
            
        
        system ("pause");
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Tenta isso:

     

    #include <stdio.h>#include <stdlib.h>#define MAXV 6int main() {  int a[MAXV], b[MAXV], c[MAXV], d[MAXV], i, i_c = 0, i_d = 0;;  printf("Insira os valores do vetor A\n");  for(i = 0; i < MAXV; i++)    scanf("%d", &a[i]);  printf("Insira os valores do vetor B\n");  for(i = 0; i < MAXV; i++)    scanf("%d", &b[i]);  for (i = 0; i< MAXV; i++)    if (i % 2 == 0) {      c[i_c] = a[i];      i_c++;      c[i_c] = b[i];      i_c++;    }    else {      d[i_d] = a[i];      i_d++;      d[i_d] = b[i];      i_d++;    }  imprime_vetor(c);  imprime_vetor(d);  system("pause");  return 0;}void imprime_vetor(int *v) {  int j;  printf("\nVetor: ");  for (j = 0; j < MAXV; j++)    if(v[j] != -1)      printf("%d ", v[j]);  printf("\n");}
    Editado por CiroboyBR

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Meu amigo obrigado pela força, mas esse codigo ainda não esta imprimindo o valor da posição do vetor c que deve ser par e do vetor d que deve ter as posições impares armazenadas

     

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXV 6

    int main() {
      int a[MAXV], b[MAXV], c[MAXV], d[MAXV], i, i_c = 0, i_d = 0;;

      printf("Insira os valores do vetor A\n");
      for(i = 0; i < MAXV; i++)
        scanf("%d", &a);

      printf("Insira os valores do vetor B\n");
      for(i = 0; i < MAXV; i++)
        scanf("%d", &b);

      for (i = 0; i< MAXV; i++)
        if (i % 2 == 0) {
          c[i_c] = a;
          i_c++;
          c[i_c] = b;
          i_c++;

        }
        else {
          d[i_d] = a;
          i_d++;
          d[i_d] = b;
          i_d++;
        }

      for (i=0;i< MAXV;i++){
          
          printf ("Par: %d\n",c[MAXV]);
          printf ("Impar: %d\n",d[MAXV]);
          
      }

      system("pause");
      return 0;
    }

    void imprime_vetor(int *v) {
      int j;
      printf("\nVetor: ");
      for (j = 0; j < MAXV; j++)
        if(v[j] != -1)
          printf("%d ", v[j]);

      printf("\n");
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Amigo, não estou entendendo o que você quer, explique direito, pois o algoritmo que lhe mandei imprime os vetores C e D.

    o vetor C foi preenchido com os valores do a e do b, onde o i é um numero par

    o vetor D foi preenchido com os valores do a e do b, onde o i é um numero impar

    no C o primeiro indice do vetor não é o 1 e sim o 0, caso o problema seja esse, é só trocar isso:

     

     if (i % 2 == 0) {      c[i_c] = a[i];      i_c++;      c[i_c] = b[i];      i_c++;    }

    trocar por isso:

     

     if (i % 2 == 1) {      c[i_c] = a[i];      i_c++;      c[i_c] = b[i];      i_c++;    }

    Caso não seja esse o problema, especifique mais seu problema, com um exemplo de entrada nos vetores A e B. E mostre como teria que ser a saida do seu programa, mostrando todos os elementos do vetor C e D

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Eu não quero imprimir o valor que foi digitado no vetor e sim armazenar no vetor c e no vetor d os indices do vetor a que é par e os indices do vetor c q é impar, independente do valor que vai dentro do vetor

     

    exemplo

     

    if (i % 2 == 0){

     

    c = i;

     

    }

     

    eu não quero assim

     

    if (i % 2 == 0){

     

    c = a;

     

    }

     

     

    meu maior problema esta em juntar os índices pares do vetor a e armazenar em c e os índices do vetor b armazenar no vetor c sem substituir o que já tem dentro que é o índice par do vetor a e fazer o mesmo com o vetor b so que impar mas tem que imprimir o índice par e impar e não o conteudo

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Vamos lá, supomos que eu fiz o programa, ai eu fiz essa entrada. EXEMPLO:

    preenche o vetor A: 1-2-3-4-5-6
    preenche o vetor B: 7-8-9-10-11-12

    Ai o vetor C deve ficar assim: 0-2-4-0-2-4

    e o vetor D deve ficar assim: 1-3-5-1-3-5

    é assim que tem que ser?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Cara, esse algoritmo não faz o menos sentido, pois o que ele faz inserir os números pares do intervalo 0...N em um vetor, e os números ímpares em outro vetor. Digitar os valores é uma perda de tempo já que não se usa eles no programa. Tai a versão modificada. e abaixo o código do que realmente importa no algoritmo.

    #include <stdio.h>#include <stdlib.h>#define MAXV 6int main() {  int a[MAXV], b[MAXV], c[MAXV], d[MAXV], i, i_c = 0, i_d = 0;  printf("Insira os valores do vetor A\n");  for(i = 0; i < MAXV; i++)    scanf("%d", &a[i]);  printf("Insira os valores do vetor B\n");  for(i = 0; i < MAXV; i++)    scanf("%d", &b[i]);  //procura os indices no vetor A  for (i = 0; i< MAXV; i++)    if (i % 2 == 0) {      c[i_c] = i;      i_c++;    }    else {      d[i_d] = i;      i_d++;    }  //procura os indices no vetor B  for (i = 0; i< MAXV; i++)    if (i % 2 == 0) {      c[i_c] = i;      i_c++;    }    else {      d[i_d] = i;      i_d++;    }  imprime_vetor(c);  imprime_vetor(d);  system("pause");  return 0;}void imprime_vetor(int *v) {  int j;  printf("\nVetor: ");  for (j = 0; j < MAXV; j++)    if(v[j] != -1)      printf("%d ", v[j]);  printf("\n");}

    Versão que faz sentido

     

    #include <stdio.h>#include <stdlib.h>#define MAXV 6int main() {  int a[MAXV], b[MAXV], c[MAXV], d[MAXV], i, i_c = 0, i_d = 0;  //procura os indices no vetor A  for (i = 0; i< MAXV; i++)    if (i % 2 == 0) {      c[i_c] = i;      i_c++;    }    else {      d[i_d] = i;      i_d++;    }  //procura os indices no vetor B  for (i = 0; i< MAXV; i++)    if (i % 2 == 0) {      c[i_c] = i;      i_c++;    }    else {      d[i_d] = i;      i_d++;    }  imprime_vetor(c);  imprime_vetor(d);  system("pause");  return 0;}void imprime_vetor(int *v) {  int j;  printf("\nVetor: ");  for (j = 0; j < MAXV; j++)    if(v[j] != -1)      printf("%d ", v[j]);  printf("\n");}

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Não entendi 

     

    imprime_vetor(c);
    imprime_vetor(d);


    Amigo obrigado pela sua ajuda, mas o seu programa não compila, se você puder passar a sua ideia seu a padronização do void t agradeço, pois não consigo entender o que você quer dizer com imprime vetor c e d, acho que você não deve estar conseguindo me entender mas agradeço mesmo assim


    Obrigado pela ajuda Cyro, assim resolveu

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXV 6

    int main() {
      int a[MAXV];
      int b[MAXV];
      int c[MAXV];
      int d[MAXV];
      int i;
      int par = 0;
      int impar = 0;

      printf("Insira os valores do vetor A: \n");
      for(i = 0; i < MAXV; i++)
        scanf("%d", &a);

      printf("Insira os valores do vetor B: \n");
      for(i = 0; i < MAXV; i++)
        scanf("%d", &b);

      //procura os indices no vetor A
      for (i = 0; i< MAXV; i++)
        if (i % 2 == 0) {
          c[par] = i;
          par++;

        }
        else {
          d[impar] = i;
          impar++;
        }

      //procura os indices no vetor B
      for (i = 0; i< MAXV; i++)
        if (i % 2 == 0) {
          c[par] = i;
          par++;

        }
        else {
          d[impar] = i;
          impar++;
        }
        
        for (i = 0; i< MAXV; i++){
            printf ("Os indices pares sao: %d\n",c);
            printf ("Os indices impares sao: %d\n",d);        
        }

      system("pause");
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • CyroBoy não consegui resolver esse problema, consegue dar uma atenção para ele?

     

    Obs: o vetor B tem que ter outro contador por exemplo j, pois da forma que esta ele esta repetindo o indice do contador i na inversão

     

     

    #include <stdio.h>
    #include <stdlib.h>

    int main() {
      int a[6];
      int b[6];
      int c[6];
      int d[6];
      int i,j;
      int par = 0;
      int impar = 0;

      printf("Insira os valores do vetor A: \n");
      for(i = 0; i < 6; i++)
        scanf("%d", &a);

      printf("Insira os valores do vetor B: \n");
      for(i = 0; i < 6; i++)
        scanf("%d", &b);

      //procura os indices no vetor A
      for (i = 0; i< 6; i++)
        if (i % 2 == 0) {
          c[par] = i;
          par++;
        }
        else {
          d[impar] = i;
          impar++;
        }

      //procura os indices no vetor B
      for (i = 0; i< 6; i++)
        if (i % 2 != 0) {
          d[impar] = i;
          impar++;

        }
        else {
          c[par] = i;
          par++;
        }
        
        for (i = 0; i< 6; i++){
            printf ("Os indices pares sao: %d\n",c);
         }
        for (i = 0; i< 6; i++){
            printf ("Os indices impares sao: %d\n",d);        
        }

      system("pause");
    }


    CyroBoy a ideia é não importa o que você digita nos vetores, mas sim o indice deles, e então a miha duvida é na ora de fazer o contador ir para o outro for, pois eu tenho o seguinte:

     

    ex:

     

    vet_a[6] ele tem indices que são 0 - 1 - 2 - 3 - 4 - 5, eu preciso de um contador i para fazer o if e ver qual é par e qual é impar e jogar o indice par para o vet_c[6] que vai ficar 0 - 2 - 4 e o impar para o vet_d[6] que vai ficar 1 - 3 - 5 depois eu preciso de um vetor b ex: vet_b[6] ele tem indice 0 - 1 - 2 - 3 - 4 - 5, eu preciso de outro contador j para fazer outro if e vai verificar se tem indice par ele joga para o vetor c no caso vet_c[6] 0 - 2 - 4 - 0 - 2 - 4 que já tem elemenos nele e vai acreascentar o par do vetor b e se for impar joga para outro vetor que é o vetd[6] 1 - 3 - 5 - 1 - 3 - 5 por isso preciso de 2 contadores diferentes

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • CiroBoy calma....kkkkk eu sei que o negocio é da China mas olha só o mesmo código sem o vetor b ele faz a mesma coisa se tivesse com o vetor, por isso que precisa de 2 contadores compila esse código que eu estou t enviando para você ver que desta forma ele esta repetindo o mesmo contador por isso que precisa ser dois

     

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXV 6

    int main() {
      int a[MAXV];
      //int b[MAXV];
      int c[MAXV];
      int d[MAXV];
      int i;
      int par = 0;
      int impar = 0;

      printf("Insira os valores do vetor A: \n");
      for(i = 0; i < MAXV; i++)
        scanf("%d", &a);

      /*printf("Insira os valores do vetor B: \n");
      for(i = 0; i < MAXV; i++)
        scanf("%d", &b);*/


      //procura os indices no vetor A
      for (i = 0; i< MAXV; i++)
        if (i % 2 == 0) {
          c[par] = i;
          par++;

        }
        else {
          d[impar] = i;
          impar++;
        }

      //procura os indices no vetor B
      for (i = 0; i< MAXV; i++)
        if (i % 2 == 0) {
          c[par] = i;
          par++;

        }
        else {
          d[impar] = i;
          impar++;
        }
        
        for (i = 0; i< MAXV; i++){
            printf ("Os indices pares sao: %d\n",c);
        }
         for (i = 0; i< MAXV; i++){
            printf ("Os indices impares sao: %d\n",d);        
        }


      system("pause");
    }

     

     

     a saida correta tem que ser assim:

     

    Insira os valores do vetor A:
    9
    8
    7
    6
    5
    4
    Insira os valores do vetor B:
    3
    2
    1
    2
    3
    4
    Os indices pares sao: 0 indice do vetor A
    Os indices pares sao: 2 indice do vetor A
    Os indices pares sao: 4 indice do vetor A
    Os indices pares sao: 0 indice do vetor B
    Os indices pares sao: 2 indice do vetor B
    Os indices pares sao: 4 indice do vetor B
    Os indices impares sao: 1 indice do vetor A
    Os indices impares sao: 3 Indide do vetor A
    Os indices impares sao: 5 Indice do vetor A
    Os indices impares sao: 1 Indice do vetor B
    Os indices impares sao: 3 Indice do vetor B
    Os indices impares sao: 5 indice do vetor B
    Pressione qualquer tecla para continuar. . .

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×