Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Moco

Salvem minha prova

Recommended Posts

A Parte de ler os numeros do vetor não está sendo executada, só boto o tamanho e já pula pro final...

Mas o que mais eu gostaria de saber se está certo é a ordenação de vetores, pq eu fiz +ou- desse jeito ae na prova e meu Prof disse que tinha q fazer com DO While...dá pra fazer como para do jeito que tá ae? pq eu acho q dá ae eu vou reclamar lá pra ganhar uns pontinhos a mais.

O exercicio original tinha mais algumas coisas, mas botei só a ordenação pra fazer a prova.

Valeu

 

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

void ordenaVetorOrdemCrescente(float *vet, int tamanho);

int main ()
{
	int i,n;
	float vetor[100];
	printf("Digite o tamanho do vetor (max.100): ");
	scanf("%d",&n);
	[b][/b]printf("\nDigite um numero do vetor: ");
	for(i=0;i<n;i++)
	   {
	   scanf("%f",&vetor[i]);
	   }[b][/b]
	ordenaVetorOrdemCrescente(vetor,n);
	printf("\nO Vetor ordenado ficaria: ");
	for(i=0;i<n;i++)
	   {
	   printf("%f",&vetor[i]);
	   }
	getch();
	return(0);
}


void ordenaVetorOrdemCrescente (float *vet, int tamanho)
{
	 int i,k;
	 float aux;
	 for(i=0;i<tamanho-1;i++)
		{
			if (vet[i+1]<vet[i])
			   {
				   aux=vet[i+1];
				   vet[i+1]=vet[i];
				   vet[i]=aux;
			   }
		}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, fiz umas pequenas modificacoes, q ele fez o proposto, ordenou os numeros...

Primeiro q nao vejo porque passar como ponteiro o vetor, passa o vetor direto que ele ja passa por referencia.

Segundo, na hora de mostrar o vetor ordenado nao precisa do & na frente da variavel.

acho q soh mudei isso... testa ai

 

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void ordenaVetorOrdemCrescente(float vet[], int tamanho);
int main ()
{	
	 int i,n;
	 float vetor[100];	
	 printf("Digite o tamanho do vetor (max.100): ");	
	 scanf("%d",&n);	
	 printf("\nDigite um numero do vetor: ");	
	 for(i=0;i<n;i++)	   
	 {	   
		scanf("%f",&vetor[i]);	   
	 }	
	 ordenaVetorOrdemCrescente(vetor,n);	
	 printf("\nO Vetor ordenado ficaria: \n");	
	 for(i=0;i<n;i++)	   
	 {	   
	   printf("%f\n",vetor[i]);	   
	 }	
	 getch();	
	 return(0);
}

void ordenaVetorOrdemCrescente (float vet[], int tamanho)
{	 
   int i,k;
   float aux;
   for(i=0;i<tamanho-1;i++)		
   {			
	  if (vet[i+1]<vet[i])			   
	  {				   
		 aux=vet[i+1];				   
		 vet[i+1]=vet[i];				   
		 vet[i]=aux;			   
	  }		
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Myho

Agora que vi aqui, realmente o que você corrigiu eu errei, mas pensei bem e vi que o laço FOR na função de ordenar não funcionaria pois ele iria varrer o vetor apenas umas vez, ae não iria ordenar direiro, teria que varrer o vetor várias vezes até que ele ficasse ordenado. Focaria bom botando um DO WHILE entre o FOR.

 

Mas beleza Muito Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diego Moco,

 

você precisa de um algoritmo de ordenação.

Vou postar o um de Ordenação por Seleção.

 

 

int ordenaselecao (int vet[], int cont){

int a,b,c;

int troca;

int t;

for (a=0;a<cont-1;++a){

troca=0;

c=a;

t=vet[a];

for (b=a+1;b<cont;++b){

if (vet<t){

c=b;

t=vet;

troca=1;

}

}

if (troca){

vet[c]=vet[a];

vet[a]=t;

}

}

}

Pesquise sobre outros tipos de ordenação.

 

Um abraço!

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.