gpt4 book ai didi

c - 对 pesquisar_bin 的 undefined reference

转载 作者:行者123 更新时间:2023-11-30 14:53:31 24 4
gpt4 key购买 nike

//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++ 返回这个错误。

我已经尝试过做很多事情,比如更改引用,包括一个点和其他事情。

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

最佳答案

您对 pesquisar_bin 的声明和使用与您的实现不匹配。正如 @JMichelB 指出的,vetor 被声明为 int,并且在调用 pesquisar_bin 时向它传递一个 int ,但您的实现将 vetor 定义为 int[]。在没有MCVE的情况下,这是我们目前所能推测的最好结果。

您的 pesquisar_bin 实现忽略了 vetor 参数并使用文件范围中的 vet 变量。由于您反复思考并且实际上没有发布MCVE,所以代码一团糟。 。将 vet 传递给 pesquisar_bin 并更改实现以使用 vetor 参数。

关于c - 对 pesquisar_bin 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47169402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com