//Ordenacao por insercao/selecao
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
int vet[10]={8,16,34,13,19,7,45,3,12,9},a,b,aux;
void selecao();
int pesquisar_bin(int,int,int,int);
int main(){
int opt=0,num,max;
char continuar;
printf("ESCOLHA O METODO DE ORDENACAO:\n\
1- INSERCAO\n\
2- SELECAO\n\
3- SAIR\n");
do{
scanf("%d",&opt);
}while(opt!=1 && opt!=2 && opt!=3);
switch(opt){
case 1:
break;
case 2:
selecao();
break;
case 3:
exit(1);
break;
}
printf("\n\n1- PESQUISA SEQUENCIAL\n\n\
2- PESQUISA BINARIA\n");
do{
aux=0;
scanf("%d",&aux);
}while(aux!=1&&aux!=2);
printf("DIGITE O VALOR A SER PESQUISADO:\n");
scanf("%d",&num);
else if(aux==2){
max=sizeof(vet)/sizeof(int);
pesquisar_bin(vet[max],0,max,num);
}
}
//ORDENACAO POR SELECAO
void selecao(){
int i=1;
do{
b=0;
for (a=0;a<9;a++){
if(vet[a+1]<vet[a]){
aux=vet[a];
vet[a]=vet[a+1];
vet[a+1]=aux;
b=1;
}
}
if(b==1){
printf("Fase %d: [",i);
for(a=0;a<10;a++){
printf("%d ",vet[a]);
}
printf("]\n\n");
i++;
}
}while(b==1);
}
//PESQUISA BINARIA
int pesquisar_bin(int vetor[],int ini,int fim,int numero){
int pos;
pos=((fim-ini)/2)+ini;
if (ini>fim){
printf("Valor %d nao encontrado no vetor\n",numero);
return 0;
}
if(numero>vet[pos]){
return (pesquisar_bin(vet,pos+1,fim,numero));
}
else if(numero<vet[pos]){
return (pesquisar_bin(vet,ini,pos-1,numero));
}
else if(numero==vet[pos]){
printf("O valor %d se encontra na posicao %d do vetor.",numero,pos);
return 0;
}
}
저는 C의 연습 문제를 해왔지만 dev C++가이 오류를 반환하는 이유를 이해하지 못합니다.pesquisar_bin에 대한 정의되지 않은 참조
나는 포인트와 다른 것들을 포함하여 참조를 변경하는 것과 같은 많은 일을 이미 시도했다.
C:\Users\ANONYM~1\AppData\Local\Temp\ccguUdp9.o ordenacao.cpp:(.text+0x128): undefined reference to `pesquisar_bin(int, int, int, int)'
\Mac\Home\Desktop\EXERCICIOS ED\collect2.exe [Error] ld returned 1 exit status
'int pesquisar_bin (int vetor [], int ini, int fim, int numero) {'사용자가 선언 한 서명이 실제 함수의 서명과 일치하지 않습니다. 'vetor'는 올바른 유형이 아닙니다. – JMichelB
https://stackoverflow.com/help/mcve를 검토하십시오. 게시 한 코드는 컴파일되지 않으며 링커 오류를 발생시키지 않습니다. 'else if (aux == 2)'에는 'if'문과 일치하는 문이 없습니다. – jwdonahue
나는 @jwdonahue를 알고있다. 나는 여기에 붙여 넣을 프로그램의 많은 부분을 숨겼다. 유일한 오류는 제가 말했던 참조입니다. – Eddie