tinuviel12
Membro
Preciso criar um programa em C que tenha um menu assim:
1-Crie um vetor com tamanho definido pelo usuario;
2-Preencha o vetor;
3-Ordene pelo metodo quick sort;
4-Ordene pelo metodo Bolha;
5-Busca binaria;
6-inprima vetor;
7-Sair;
Sendo que a opçao dois so pode ser feita depois da opçao 1, a 3 so pode ser feita depois da 1 e da 2 e assim por diante.
Como chamar a opçao 1 apos escolher a 2?
segue abaixo o programa:
1-Crie um vetor com tamanho definido pelo usuario;
2-Preencha o vetor;
3-Ordene pelo metodo quick sort;
4-Ordene pelo metodo Bolha;
5-Busca binaria;
6-inprima vetor;
7-Sair;
Sendo que a opçao dois so pode ser feita depois da opçao 1, a 3 so pode ser feita depois da 1 e da 2 e assim por diante.
Como chamar a opçao 1 apos escolher a 2?
segue abaixo o programa:
Código:
#include <stdio.h>
#include <conio.h>
#include <math.h>
//Funçao CRIA
int* Cria(int *vet, int* n)
{
printf("Digite tamanho do vetor");
scanf("%d",n );
vet = (int*) malloc((*n)*sizeof(int));
return vet;
}
//Funçao PREENCHE
int* Preenche(int *vet,int* n)
{
int cont;
vet=Cria(n,vet);
for(cont=0;cont<=*n;cont++)
{
printf("Digite o numero %d: ",cont+1);
scanf("%d",&vet[cont]);
}
printf("\n ");
return vet;
}
//FUNCAO BOLHA
void Bolha(int *vet,int *n)
{
int i,j;
for(i=(*n);i>=1;i--)
for(j=0;j<i;j++)
if(vet[j]>vet[j+1])
{
int temp=vet[j];
vet[j]=vet[j+1];
vet[j+1]=temp;
}
}
//FUNCAO QUICK SORT
void Quick(int n, int* vet)
{
if(n<=1)
return;
else {
int x=vet[0];
int a=1;
int b=n-1;
do{
while (a<n && vet[a]<=x) a++;
while (vet[b]>x) b--;
if (a<b){
int temp=vet[a];
vet[a]=vet[b];
vet[b]=temp;
a++;
b--;
}
}while(a<=b);
vet[0]=vet[b];
vet[b]=x;
Quick(b,vet);
Quick(n-a,&vet[a]);
}
}
//FUNCAO BUSCA_BIN
int busca_bin(int n, int *vet, int elem){
int ini=0;
int fim=n-1;
int meio;
while (ini<=fim){
meio=(ini+fim)/2;
if (elem <vet[meio])
fim=meio-1;
else if (elem >vet[meio])
ini=meio+1;
else
return meio;
}
return -1;
}
//FUNCAO IMPRIME
void Imprime(int *vet,int* n)
{
int cont;
for(cont=0;cont<=*n;cont++)
{
printf("Vet[%d]: %d \n",cont+1,vet[cont]);
}
}
int main()
{
int op,elem;
int*vet,*n;
do{
printf("01.Criar Vetor\n");
printf("02.Preencher Vetor\n");
printf("03.Ordenar Vetor\n");
printf("04.Ordenar Vetor Quick Sort\n");
printf("05.Pesquisar Elemento\n");
printf("06.Imprimir Vetor\n");
printf("07.Sair\n");
printf("\nEscolha uma opcao: ");
scanf("%d",&op);
switch(op){
case 1:
vet=Cria(vet,n);
break;
case 2:
Preenche(vet,n);
break;
case 3:
Bolha(vet,n);
break;
case 4:
Quick(&n,vet);
break;
case 5:
printf("Digite o elemento a ser procurado: ");
scanf("%d",&elem);
if (busca_bin==-1)
printf("Nao encontrou");
else
printf("Encontrou");
break;
case 6:
Imprime(vet,n);
break;
}
}while(op!=7);
system("pause");
return 0;
}
Última edição pelo moderador: