Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Rodrigues Torre

[Resolvido] função - Vetor

Recommended Posts

Boa tarde,

 

Gostaria de uma ajuda neste programa:

 

Fazer um procedimento que recebe, por parâmetro, um vetor A(5) de reais e retorna-o ordenado em ordem crescente.

 

A minha e dúvida e como fazer o vetor retornar os elementos em ordem crescente.

 

Segue abaixo o código

 

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

void vetor_ordenado(int vetA[5], int vetB[5], int i); //Definição da função monta matriz
int main() {
int vetA[5];
int vetB[5];
int i,aux;
  system("color 1B"); 
	{ system("cls");
	 vetor_ordenado(vetA,vetB,i); 
  }
  printf("\n\n\n");	 
  system("pause");
  return 0;
}

void vetor_ordenado(int vetA[5], int vetB[5], int i)
{ 
int aux;
for(i=0;i<5;i++) 
   {   
   printf("Entre com o elemento A[%d]: ",i+1);
   scanf("%d",&vetA[i]);	
   vetB[i] = vetA[i];
   
				if(vetB[i]>= vetA[i])
				{ aux = vetA[i];
				  vetA[i] = vetB[i];
				  vetB[i] = aux; }
}	 

printf("\nVetor  A  eh: \n ");
			for(i=0; i<5; i++) { 
			 printf("%0d\t",vetA[i]);
			 printf("\n"); } 

printf("\nVetor  ordenado  eh: \n ");
			for(i=0; i<5; i++) { 
			 printf("%0d\t",vetB[i]);
			 printf("\n"); } 

return;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Array é passado por referencia.Depois da ordenacao nao precisa retornar nada.Não precisa nem de segundo array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Import

Eu arrumei o código para este modo de ordenação.

E me parece que esta funcionando

 

 

/*Ordenar vetor crescente*/
# include<stdio.h>
# include<stdlib.h> 

void vetor_ordenado(int vetA[5], int i, int j); //Definição da função monta matriz
int main() {
int vetA[5];
int i,j,aux;
  system("color 1B"); 
	{ system("cls");
	 vetor_ordenado(vetA,i,j); 
  }
  printf("\n\n\n");	 
  system("pause");
  return 0;
}

void vetor_ordenado(int vetA[5], int i, int j)
{ 
int aux;
for(i=0;i<5;i++) 
{   
   printf("Entre com o elemento A[%d]: ",i+1);
   scanf("%d",&vetA[i]);	
}	 

	 //ordena o vetor digitado
	for(i=0;i<5;i++){
	  for(j=0;j<5;j++){

   //compara posicoes e ordena caso condicao seja verdadeira
   if(vetA[i] < vetA[j]) //se inverter o sinal < para >
   {					   //sera exibida a ordem decrescente dos
	 aux = vetA[i];	   //numeros
	 vetA[i] = vetA[j];
	 vetA[j] = aux;
   }
  }
 }

printf("\nVetor  A  eh: \n ");
			for(i=0; i<5; i++) { 
			 printf("%0d\t",vetA[i]);
			 printf("\n"); } 

return;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que ai você não retorna nada amigo, apenas criou uma função e fez tudo dentro dela, para atender o que é pedido pelo exercício deve criar a variável dentro da função main(), passar por meio de referência para a função vetor_ordenado e após fazer a ordenação, "retornar" as variáveis alteradas. Você pode otimizar um pouco o código que faz a ordenação, você está verificando elementos em posições iguais e idente esse código também, quanto mais identado mais fácil é de ler.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criei duas funções

A primeira e no inicio do código e a segunda e onde eu coloco o programa principal

Ou ñ?

 

 

Só que ai você não retorna nada amigo, apenas criou uma função e fez tudo dentro dela, para atender o que é pedido pelo exercício deve criar a variável dentro da função main(), passar por meio de referência para a função vetor_ordenado e após fazer a ordenação, "retornar" as variáveis alteradas. Você pode otimizar um pouco o código que faz a ordenação, você está verificando elementos em posições iguais e idente esse código também, quanto mais identado mais fácil é de ler.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu criei duas funções

A primeira e no inicio do código e a segunda e onde eu coloco o programa principal

Ou ñ?

 

quê???....

 

Se você está falando do post #3 , está totalmente errado. O compilador nem termina o trabalho porque é definição dupla. Segundo, porque não se tem a função main.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gustavo, não tem problema algum quanto a organização das funções, está certo, você criou a função vetor_ordenado, por ser depois da função main declarou o protótipo dela , ocorre que apenas está apresentado os resultados dentro da função vetor_ordenado, não existe quase nenhuma comunicação entre as duas, conforme está sendo pedido pelo exercício.

 

Como assim definição dupla Isis? A função main existe sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gustavo, não tem problema algum quanto a organização das funções, está certo, você criou a função vetor_ordenado, por ser depois da função main declarou o protótipo dela , ocorre que apenas está apresentado os resultados dentro da função vetor_ordenado, não existe quase nenhuma comunicação entre as duas, conforme está sendo pedido pelo exercício.

 

Como assim definição dupla Isis? A função main existe sim.

 

Ah sim. Depois de você olhar 5 vezes você vê a função main grudada no protótipo da outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.