Buscar

alguém me explica por que meu código não imprime o resultado da soma do vetor

int vetor[100], i, num, soma;


printf("Digite os valores da matriz\n");
for(i=1; i<=3; i++){
printf("Elemento: %d ",i);
scanf("%d",&vetor[i]);
vetor[i] = rand() % 100;
}

soma = vetor[0];
for(i=1; i<=3; i++){
soma = soma + vetor[i];
}

printf("Total: %d",soma);

💡 3 Respostas

User badge image

Ouranos

 vetor[0] não tem valor definido em momento algum do seu código.

troque:

soma = vetor[0];

por:

soma = 0;

 

 

1
Dislike0
User badge image

Andre Smaira

 

 

Nesse exercício vamos encontrar o erro do código dado. Para isso vamos comentar linha a linha (prática recomendada quando se programa) o código para identificar o erro.


Comentadno, temos:

int vetor[100], i, num, soma; // vetor: 100 inteiros, i: inteiro, num: inteiro, soma: inteiro

printf("Digite os valores da matriz\n"); // Instrucao

for(i=1; i<=3; i++){             // Para i na sequencia {1,2,3}

printf("Elemento: %d ",i);  // Imprime o numero do elemento (1,2,3)

scanf("%d",&vetor[i]);      // Le os 3 elementos e guarda em vetor[1], vetor[2] e vetor[3]

vetor[i] = rand() % 100;    // Sorteia 3 numeros e sobrescreve os números lidos

}

soma = vetor[0];               // soma inicializado com o conteúdo de vetor[0] (lixo)

for(i=1; i<=3; i++){         // Para i na sequencia {1,2,3}

soma = soma + vetor[i];   // incrementa soma com o valor de vetor[i]

}

printf("Total: %d",soma); // imprime soma=vetor[0]+vetor[1]+vetor[2]+vetor[3]


Da forma como está o programa soma junto com o resultado da soma do vetor o elemento contido em soma[0], que como não foi inicializado, pode ser qualquer valor inteiro, o que chamamos de lixo. Para resolver o problema podemos inicializar soma com zero, o que nos leva ao seguinte código, onde a linha em negrito indica a alteração realizada:

int vetor[100], i, num, soma; // vetor: 100 inteiros, i: inteiro, num: inteiro, soma: inteiro

printf("Digite os valores da matriz\n"); // Instrucao

for(i=1; i<=3; i++){             // Para i na sequencia {1,2,3}

printf("Elemento: %d ",i);  // Imprime o numero do elemento (1,2,3)

scanf("%d",&vetor[i]);      // Le os 3 elementos e guarda em vetor[1], vetor[2] e vetor[3]

vetor[i] = rand() % 100;    // Sorteia 3 numeros e sobrescreve os números lidos

}

soma = 0;                       // soma inicializado com 0

for(i=1; i<=3; i++){         // Para i na sequencia {1,2,3}

soma = soma + vetor[i];   // incrementa soma com o valor de vetor[i]

}

printf("Total: %d",soma); // imprime soma=0+vetor[1]+vetor[2]+vetor[3]

1
Dislike0
User badge image

RD Resoluções

Da forma como está o programa soma junto com o resultado da soma do vetor o elemento contido em soma[0], que como não foi inicializado, pode ser qualquer valor inteiro, o que chamamos de lixo. Para resolver o problema podemos inicializar soma com zero, o que nos leva ao seguinte código, onde a linha em negrito indica a alteração realizada:

int vetor[100], i, num, soma; // vetor: 100 inteiros, i: inteiro, num: inteiro, soma: inteiro

printf("Digite os valores da matriz\n"); // Instrucao

for(i=1; i<=3; i++){ // Para i na sequencia {1,2,3}

printf("Elemento: %d ",i); // Imprime o numero do elemento (1,2,3)

scanf("%d",&vetor[i]); // Le os 3 elementos e guarda em vetor[1], vetor[2] e vetor[3]

vetor[i] = rand() % 100; // Sorteia 3 numeros e sobrescreve os números lidos

}

soma = 0; // soma inicializado com 0

for(i=1; i<=3; i++){ // Para i na sequencia {1,2,3}

soma = soma + vetor[i]; // incrementa soma com o valor de vetor[i]

}

printf("Total: %d",soma); // imprime soma=0+vetor[1]+vetor[2]+vetor[3]

1
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais