Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char **argv)
{
	//Declaração das variáveis e vetores
    int vetA[10], vetB[15], vetC[25];
	int i, j;
	int tamVetor[25];
	
	//Impressão de números aleatórios de 0 a 100	
	printf("Preenchendo o vetor vetA aleatoriamente\n\n");
	//Função que mudará os valores em cada nova execução
	srand(time(NULL));
	for (i=0; i<10; i++){
		vetA[i] = rand() % 100;
		printf("O valor gerado na posicao [%d] eh = %d\n", i, vetA[i]);	
	}
	
	printf("\n");
	//Preenchendo o segundo vetor
	printf("Preenchendo o vetor vetB aleatoriamente\n\n");
	for (i=0; i<15; i++){
		vetB[i] =rand() % 100;
		printf("O valor gerado na posicao [%2d] eh = %d\n", i, vetB[i]);
    }
	printf("\n");
	// Os elementos do vetor A são atribuidos ao vetor C , na continuação o vetor C recebe os elementos do vetor B 
	for (i=0; i < 25; i++){
		vetC[i] = vetA[i];
	}
	for (i=10; i<25; i++){
		vetC[i]= vetB[i-10];
	}

	//Ordenando os objetos dos vetores
	int troca;
	//int tamVetor = 25;
	for (i = 1; i < tamVetor[i]; i++) {
		troca = vetC[i];
		j = i - 1;
			
		while ((j >= 0) && (vetC[j] > troca)) {
			vetC[j + 1] = vetC[j];
			j--;
		}	
		vetC[j + 1] = troca;
	}
	
	//Imprimindo o Vetor Resultante 
	printf("O vetor Ordenado possui os seguintes elementos\n");
		for(i=0; i<25; i++){
			printf("%2d\n ", vetC[i]);
		}
		
	//Verificando se há elementos repetidos, se houver suprimir da impressão os elementos com valor duplicado
     for( i = 0; i < 25; i++){
    
        for( j = 0; j < troca; j++){
        
            if(vetC[i] == tamVetor[j]){
             
        }

        if( j == troca){
        
            tamVetor[troca] = vetC[i];
            troca++;
        }
    }
}
    //Impressão dos Elementos do vetor C sem as repetições de valores
    printf("\n");
    printf("Impressao do Vetor C sem as redundancias.\n\n");
    for( i = 0; i < troca; i++ )
        printf("O Vetor C na posicao %2d = %2d\n",i+1, tamVetor[i] );
    printf("\n");

	return 0;
}

 

adicionado 1 minuto depois
agora, ArieviloAgarf disse:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char **argv)
{
	//Declaração das variáveis e vetores
    int vetA[10], vetB[15], vetC[25];
	int i, j;
	int tamVetor[25];
	
	//Impressão de números aleatórios de 0 a 100	
	printf("Preenchendo o vetor vetA aleatoriamente\n\n");
	//Função que mudará os valores em cada nova execução
	srand(time(NULL));
	for (i=0; i<10; i++){
		vetA[i] = rand() % 100;
		printf("O valor gerado na posicao [%d] eh = %d\n", i, vetA[i]);	
	}
	
	printf("\n");
	//Preenchendo o segundo vetor
	printf("Preenchendo o vetor vetB aleatoriamente\n\n");
	for (i=0; i<15; i++){
		vetB[i] =rand() % 100;
		printf("O valor gerado na posicao [%2d] eh = %d\n", i, vetB[i]);
    }
	printf("\n");
	// Os elementos do vetor A são atribuidos ao vetor C , na continuação o vetor C recebe os elementos do vetor B 
	for (i=0; i < 25; i++){
		vetC[i] = vetA[i];
	}
	for (i=10; i<25; i++){
		vetC[i]= vetB[i-10];
	}

	//Ordenando os objetos dos vetores
	int troca;
	//int tamVetor = 25;
	for (i = 1; i < tamVetor[i]; i++) {
		troca = vetC[i];
		j = i - 1;
			
		while ((j >= 0) && (vetC[j] > troca)) {
			vetC[j + 1] = vetC[j];
			j--;
		}	
		vetC[j + 1] = troca;
	}
	
	//Imprimindo o Vetor Resultante 
	printf("O vetor Ordenado possui os seguintes elementos\n");
		for(i=0; i<25; i++){
			printf("%2d\n ", vetC[i]);
		}
		
	//Verificando se há elementos repetidos, se houver suprimir da impressão os elementos com valor duplicado
     for( i = 0; i < 25; i++){
    
        for( j = 0; j < troca; j++){
        
            if(vetC[i] == tamVetor[j]){
             
        }

        if( j == troca){
        
            tamVetor[troca] = vetC[i];
            troca++;
        }
    }
}
    //Impressão dos Elementos do vetor C sem as repetições de valores
    printf("\n");
    printf("Impressao do Vetor C sem as redundancias.\n\n");
    for( i = 0; i < troca; i++ )
        printf("O Vetor C na posicao %2d = %2d\n",i+1, tamVetor[i] );
    printf("\n");

	return 0;
}

 

Pessoal, ajudem nesta questão de como eliminar os valores repetidos do meu vetor resultante. Sou iniciante e ainda não consegui visualizar como resolver o problema.

Obrigado!

  • Obrigado 1
Postado

@ArieviloAgarf    para eliminar os números repetidos você usa dois loop aninhados um dentro do outro , e tendo a quantidade de valor do vetor vetC , e o loop de dentro começa do valor da variável do primeiro loop  mais 1 , e verifica se o conteúdo do vetor vetC na posição indicada pela variável do loop de dentro for igual ao número na posição de vetC indicada pela variável do primeiro loop , marque essa posição como repetida colocando um número com valor negativo ,  que pode ser o número -1 , pois na geração dos números só haverá números positivos ou zero ,  assim na hora de imprimir , imprima apenas os números que forem diferentes de 1 negativo .. e seu método de ordenação não está funcionando ,   então seu código pode ser assim  :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
    //Declaração das variáveis e vetores
    int vetA[10], vetB[15], vetC[25];
    int i, j, troca;
    //Impressão de números aleatórios de 0 a 100
    printf("Preenchendo o vetor vetA aleatoriamente\n\n");
    //Função que mudará os valores em cada nova execução
    srand(time(NULL));
    for(i=0; i<25; i++){
        if(i<10){
            vetA[i] = rand() % 101;
            printf("O valor gerado na posicao [%d] eh = %d\n", i, vetA[i]);
        }
        else{
            if(i==10)printf("\nPreenchendo o vetor vetB aleatoriamente\n\n");
            vetB[i-10] = rand() % 101;
            printf("O valor gerado na posicao [%d] eh = %d\n", i, vetB[i-10]);
        }
    }
    printf("\n");
    //Preenchendo o segundo vetor
    printf("\n");
    // Os elementos do vetor A são atribuidos ao vetor C , na continuação o vetor C recebe os elementos do vetor B
    for(i=0; i < 10; i++){
        vetC[i] = vetA[i];
    }
    for (i=10; i<25; i++){
        vetC[i]= vetB[i-10];
    }
    //Ordenando os objetos dos vetores com o método bubblesort
    for(i=0; i<24; i++){
        for(j=i+1;j<25;j++){
            if( vetC[i] > vetC[j]){
                troca   = vetC[i] ;
                vetC[i] = vetC[j] ;
                vetC[j] =   troca ;
            }
        }
    }
    //Imprimindo o Vetor Resultante
    printf("O vetor Ordenado possui os seguintes elementos\n");
        for(i=0; i<25; i++){
            printf("%2d\n",vetC[i]);
        }
    //Verificando se há elementos repetidos, se houver suprimir da impressão os elementos com valor duplicado
     for(i=0; i<24; i++){
        for(j=i+1; j<25; j++){
            if(vetC[i]==vetC[j]){
                vetC[j]= -1;/* marcado como repetido */
            }
        }
    }
    //Impressão dos Elementos do vetor C sem as repetições de valores
    printf("\n");
    printf("Impressao do Vetor C sem as redundancias.\n\n");
    for(i=0; i<25; i++)
        if(vetC[i]!= -1)
            printf("O Vetor C na posicao %2d = %2d\n",i+1,vetC[i]);
    printf("\n\n");
    return 0;
}

 

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