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

C Exercicio sobre vetor em c

Recommended Posts

Postado (editado)

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.



      
           

Editado por Simon Viegas
Inserir tag CODE
  • 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
Postado (editado)
#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.

Editado por Escanor
  • 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
Postado (editado)

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

Editado por Simon Viegas

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

×