Ir ao conteúdo
  • Cadastre-se
hwayoung

C Exercicio sobre vetor em c

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi seu erro, mas se quer usar 5 posiçoes de um vetor tem que declarar com 5 ou mais. Nesse código você está declarando só 4 posiçoes e usando 5. 

Citação

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

 

  • Curtir 4

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MassakiMsk sim eu tenho que arrumar isso ainda mais obrigada por me informar

adicionado 2 minutos depois
agora, hwayoung disse:

@MassakiMsk o problema é na hora de dobrar o valor não consigo arrumar

 

adicionado 6 minutos depois

agora arrumou entendi muito obrigada^_^

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este sítio fornece bom apontamento e exercício de vetores, com gabarito;

https://www.cprogressivo.net/p/vetores-em-linguagem-c.html

  • Curtir 3

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

A respeito do "< , <=" eu endendi mais fiquei com  duvida na  sua resolução do exercicio eu teria que  ler meu calculo no primeiro vetorA?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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 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

×