Ir ao conteúdo

Posts recomendados

Postado

Eu fiz um exercício aqui em C, eu queria mostrar os números pares que haviam no primeiro vetor, então pedi que o programa armazenasse os pares em um outro vetor, só que ele ta imprimindo uns números que nem aparecem no primeiro vetor e não imprimiu só números pares.

#include<stdio.h>
#include<locale.h>
#include<time.h>
#include<stdlib.h>
int main(){
	setlocale(LC_ALL,"");
	int par;
	int vetor[100];
	int vetorPAR[100];
	for(int i=0;i<100;i++){
		vetor[i]= rand()%100;
		if(vetor[i]%2==0){
			vetorPAR[i]=vetor[i];
			 par++;
			 
		}
	}
	printf("Dados do vetor\n");
	for(int i=0;i<100;i++){
		printf("%d ",vetor[i]);
	}
	printf("\nQuantidade de pares encontrados\n%d",par);
	printf("\nPares encontrados\n");
	for(int i=0;i<100;i++){
		printf("%d ",vetorPAR[i]);
	}
}

 

Capturar.PNG

Postado

Os vetores em C não inicializados com 0 automaticamente. Como você está escrevendo os dados no vetor de pares nas mesmas posições que no vetor de fonte, os dados nas outras posições ficam com lixo de memória.

O que está acontecendo é o seguinte:

vetor = [ <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>, ... ]

vetorPAR = [ <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>,  <lixo>, ... ]

{{código roda}}

vetor = [ 41,  67, 34,  0 , 69,  ... ]

vetorPAR = [ <lixo>, <lixo>, 34, <lixo>, 0, <lixo>, ...]

 

Tente preencher as posições do vetor de pares em ordem, e/ou preencher os vetores com zeros. Assim você verá que o código funciona perfeitamente.

  • Curtir 1
Postado

@Daniel BS Resolvido!

	#include<stdio.h>
	#include<locale.h>
	#include<time.h>
	#include<stdlib.h>
	int main(){
		setlocale(LC_ALL,"");
		int par=0;
		int vetor[100];
		int vetorPAR[100];
		for(int i=0;i<100;i++){
			vetor[i]= rand()%100;
			if(vetor[i]%2==0){
				 vetorPAR[par]=vetor[i];
				 par++;	
				 		}
		}
		printf("Dados do vetor\n");
		for(int i=0;i<100;i++){
			printf("%d ",vetor[i]);
		}
		printf("\nQuantidade de pares encontrados\n%d",par);
		printf("\nPares encontrados\n");
		for(int i=0;i<par;i++){
			printf("%d ",vetorPAR[i]);
		}
	}

 

Capturar.PNG

  • Curtir 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!