Ir ao conteúdo
  • Cadastre-se

C Exercicio sobre vetor em c


hwayoung

Posts recomendados

1) Faça um programa para calcular o dobro de cada elemento de um vetorA com 5
elementos e colocar os resultados em um segundo vetorB. Mostre os valores resultantes
do vetorB.

#include <stdio.h>

  int main(){
      
    int i, vetorA[4],vetorB[4];
    
        for(i=0; i<=4; i++)
        {
          printf("\n digite  um numero[%d]",i);
           scanf(" %d", &vetorA);  
        }
       for(i=0; i<=4; i++){
         vetorB=vetorA*2;
         printf("\n resultdo= %d >> %d \n",i,vetorB);
        
         }
  return 0;
  } 

 alguem poderia me ajudar nesse programa meu ultimo numero faz a duplicação do numero dentro do vetor em vez do informado 

eu realmente estou com muita dificuldade nessa materia ...E se alguem puder me indicar materias faceis para que eu posso entender o conteudo ficaria muito agradecida.



      
           

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

#include <stdio.h>

  int main(){

    int i, vetorA[5],vetorB[5];

        for(i=0; i<5; i++){
          printf("\n digite  um numero[%d]",i);
           scanf(" %d", &vetorA[i]);
        }

       for(i=0; i<5; i++){
         vetorB[i]=vetorA[i]*2;
         printf("\n resultdo= %d >> %d \n",i,vetorB[i]);

         }
  return 0;
  }

O problema estava no vetorA e vetorB, que estavam com 4 mas deveriam estar com 5, porque no for pra vetor não se pode usar <= porque entra em loop infinito e toda vez que se for utilizar vetor pra inserir o dado no caso no scanf tem que colocar pra ele ir alterando de acordo com o loop do for tipo vetorA[0] = 1, vetorA[1] = 2, vetorA[2] = 3..., e na hora de mostrar também colocar o vetorB (Espero que tenha dado pra entender não se se fui claro qualquer coisa só perguntar.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

1#
@hwayoung, sempre mantenha o código indentado. É se uma importância. Ex.:

#include <stdio.h>
int main() {
    int i, vetorA[4],vetorB[4];
    for (i=0; i<=4; i++) {
        printf("\n digite  um numero[%d]",i);
        scanf(" %d", &vetorA);  
    }
    for (i=0; i<=4; i++) {
        vetorB=vetorA*2;
        printf("\n resultdo= %d >> %d \n",i,vetorB);
    }
    return 0;
}




2#

Sobre o "tamanho do vetor". Só para complementar:
Quando se declara um vetor, aquele valor entre os "[]" está definido o seu tamanho, ou seja, a quantidade de posição. Se quer 5 posições, usa 5 mesmo. Já na hora de acessar é um pouco diferente, se o vetor tem N posições, seu índice será definido indo de 0 a N-1. Daí usa de 0 a 4 (0, 1, 2, 3 e 4), totalizando as 5 posições.

Sobre o citado por @Escanor:

1 hora atrás, Escanor disse:

O problema estava no vetorA e vetorB, que estavam com 4 mas deveriam estar com 5, porque no for pra vetor não se pode usar <= porque entra em loop infinito

Então, usar "<" ou "<=" depende do valor usado no parâmetro. Por exemplo, se o vetor tem 5 posição, seu índice vai de 0 a 4, correto? Se usar "de 0 a <=5" o programa vai tentar acessar as posições 0, 1, 2, 3, 4 e 5!!! Mas a posição 5 não existe!!! O que pode dar erro (bug) e travar o programa ou exibir dados errados etc. obs.: independente do programa rodar sem erros ou não, isso seria um erro de lógica, ou seja, perceba que funcionar não quer dizer que está certo.

Então, tecnicamente o programa não vai ficar num loop infinito, pois iria executar os seus 6 loops e finalizar, o problema central está no fato que a posição 5 não existe (como dito, só vai de 0 a 4).

 

RESUMINDO:

ou usar "<5" ou usa "<=4".  É mais comum a primeira opção.. pois fica mais sugestível o tamanho real do vetor.



3#
Sobre o enunciado:

2 horas atrás, hwayoung disse:

1) Faça um programa para calcular o dobro de cada elemento de um vetorA com 5 elementos e colocar os resultados em um segundo vetorB. Mostre os valores resultantes do vetorB.

 

Eu sugiro fazer assim:

- ler o vetorA;

- gera o vetorB;

- imprime o vetorB.

 

Nesta ordem...



Perceba que no seu código você está gerando o vetor e já exibindo... acho que seria melhor separar... primeiro gera tudo, depois exibe tudo.

 

 

***

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sobre:

20 minutos atrás, hwayoung disse:

fiquei com duvida na  sua resolução do exercicio eu teria que  ler meu calculo no primeiro vetorA?


Não. O enunciado explica:

 

4 horas atrás, hwayoung disse:

1) Faça um programa para calcular o dobro de cada elemento de um vetorA com 5 elementos e colocar os resultados em um segundo vetorB. Mostre os valores resultantesdo vetorB.


Você precisa do "dobro de cada elemento de um vetorA". Para ver ter o dobro de algo, primeiro precisa ter o algo! Basta inicialmente ler o vetorA.

Tendo o vetorA preenchido, gera o vetorB.

Após exibi o vetorB.


Resumindo:

2 horas atrás, Simon Viegas disse:

Eu sugiro fazer assim:

- ler o vetorA;

- gera o vetorB;

- imprime o vetorB.

 

adicionado 0 minutos depois

*exibe

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!