求看一下哪里出错了
#include <stdio.h>
int search(int key,int a[],int len);
int main()
{
int k=10;
int r=(k,amout[],sizeof(amout)/sizeof(amout[0]));
return 0;
}
//二分法, 函数,
int search(int key,int a[],int len)
{ int ret=-1;
int left=0;
int right=len-1;
int middle=(left+right)/2;
// int k;
while(right>left){
if(a[middle]==k){
ret=middle;
break;
}else if(a[middle]<k){
left=middle+1;
}else{
right=middle-1;
}
}
return ret;
}
题主代码修改如下,改动处见注释,供参考:
#include <stdio.h>
int search(int key,int a[],int len); // 函数声明
int main()
{
int k=10, amout[] = {1,2,3,5,4,7,10,14,18,19,26}; //漏了数组amout[]定义递增及初始化 修改
int r=search(k,amout,sizeof(amout)/sizeof(amout[0])); // 修改
//int r=(k,amout[],sizeof(amout)/sizeof(amout[0]));//函数调用,漏了函数名
if (r == -1) //修改 主函数里看搜索结果
printf("not found!");
else
printf("amout[%d] = %d", r, amout[r]);
return 0;
}
//二分法, 函数,
int search(int key,int a[],int len)
{ int ret=-1;
int left=0;
int right=len-1;
//int middle=(left+right)/2; 修改
//int k;
while(right>left){
int middle=(left+right)/2; //此句移动到while()循环内部 修改
if(a[middle]==key){//if(a[middle]==k) 修改
ret=middle;
break;
}else if(a[middle]<key){ //if(a[middle]<k) 修改
left=middle+1;
}else{
right=middle-1;
}
}
return ret;
}
有帮助的话 采纳一下
#include <stdio.h>
int search(int key, int a[], int len){
int left = 0;
int right = len - 1;
while(left <= right) {
int middle = (left + right) / 2;
if(a[middle] == key) {
return middle;
}
else if(a[middle] < key) {
left = middle + 1;
}
else {
right = middle - 1;
}
}
return -1;
}
int main() {
int amount[] = {1, 2, 3, 4, 5};
int key = 3;
int index = search(key, amount, sizeof(amount)/sizeof(amount[0]));
return 0;
}
你的amout[]没有定义哦
根据提供的信息,看起来你遇到了包含文件的问题。在C++中,要包含其他文件,可以使用#include指令。该指令用于将其他文件的内容插入到当前文件中。
首先,让我们检查你的代码和错误消息。
// 这里请粘贴你的代码
// 这里请粘贴错误信息
根据错误消息所描述的问题,有一个可能是在包含文件的过程中出现了循环包含的情况。这会导致在链接阶段时出现错误。
为了解决这个问题,你可以使用预处理指令的条件编译来避免多次包含同一个文件。在每个包含文件的开始处使用#ifndef和#define指令,然后在文件的末尾使用#endif指令。这样可以确保每个文件只被包含一次。
#ifndef FILENAME_H // 使用文件名的唯一标识符替换FILENAME_H
#define FILENAME_H // 使用相同的文件名的唯一标识符替换FILENAME_H
// 在这里放置文件的内容
#endif // 结束条件编译
此外,还要注意在头文件中只放置声明而不是定义。例如,函数和变量的定义应该放在源文件中,而不是头文件中。头文件应该只放置声明,例如函数或类的原型。
如果你的代码中出现了其他错误,我需要更多的信息才能帮助你解决。请提供代码和错误信息的详细信息,以便我可以更好地帮助你解决问题。如果你对此问题不确定,也可以提供更多信息,我将尽力帮助你解决。