Ir ao conteúdo

Posts recomendados

Postado

Galera, boa noite !

Alguém saberia porque o vetor não sofre alteração após ser alterado pela função embaralhar ?

Citação

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

void embaralhar(int tam, int vet[]);
int main()
{
	int tam ,i;
	printf("entre com o tamanho do vetor: ");
	scanf("%d", &tam);
	
int vet[tam];
	
	for(i=0; i<tam; i++)
	{
		vet[i] = i;
		printf("%d ", vet[i]);
	}
	
	embaralhar(tam, vet);
	
	for(i=0; i<tam; i++)
	{
		vet[i] = i;
		printf("%d ", vet[i]);
	}
}

void embaralhar(int tam, int vet[])
{
	int i, aux, x, pos1, pos2;
	srand(time(NULL));
	
	x = rand()%tam;
	printf("\nx recebeu o valor: %d\n", x);
	system("PAUSE");
	
	for (i=0; i<=x; i++)
	{
		pos1 = rand()%tam;
		pos2 = rand()%tam;
		
		aux = vet[pos1];
		vet[pos1]=vet[pos2];
		vet[pos2]=aux;
		printf("\ntroca realizada [%d] com [%d]", vet[pos1], vet[pos2]);
		
	}
	
	printf("\n\n");
}

 

 

  • Obrigado 1
Postado

@guhbrj        ele sofre a alteração , mas na hora que ele volta da função embaralhar , o vetor está sendo definido novamente dentro do loop ali no final nessa linha

:

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

void embaralhar(int tam, int vet[]);
int main()
{
	int tam ,i;
	printf("entre com o tamanho do vetor: ");
	scanf("%d", &tam);
	
    int vet[tam];
	
	for(i=0; i<tam; i++)
	{
		vet[i] = i;
		printf("%d ", vet[i]);
	}
	
	embaralhar(tam, vet);
	
	for(i=0; i<tam; i++)
	{
	    /* vet[i] = i;             nessa linha aqui ele colca os valores novamente como eram */
		printf("%d ", vet[i]);
	}
}

void embaralhar(int tam, int vet[])
{
	int i, aux, x, pos1, pos2;
	srand(time(NULL));
	
	x = rand()%tam;
	printf("\nx recebeu o valor: %d\n", x);
	system("PAUSE");
	
	for (i=0; i<=x; i++)
	{
		pos1 = rand()%tam;
		pos2 = rand()%tam;
		
		aux = vet[pos1];
		vet[pos1]=vet[pos2];
		vet[pos2]=aux;
		printf("\ntroca realizada [%d] com [%d]", vet[pos1], vet[pos2]);
		
	}
	
	printf("\n\n");
}

 

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