编程问题:二分查找:一个包括n个有序(升序)元素的整型数组nums和一个目标值target,搜索nums中的target,如果目标值存在就返回下标,否则返回-1。
以下为我大概思路请指导,对于二分查找不熟悉只能理解大概意思w_w
#include<stdio.h>
int main()
{ int nums[n],target,i,k,j,z;
printf("输入一个数:")
scanf("%d",&n);
printf("输入%d个数:");
for(i=0;i<=n;i++)
scanf("%d",&nums[i]);
printf("输入target:")
scanf("%d",&target);
if(nums[k]<=target&&nums[n-1]>=target)
{ for(j=0;j>=n/2;j++)
{ if(nums[j]=target)
return j;}
}
if(nums[k]>=target&&nums[0]<=target)
{ for(z=0;z<=n/2;z++)
{ if(nums[z]=target)
return z;
}
else
ruturn -1;}
return 0;
}
存在疑问:n是否应默认为常量还是需要用printf()scanf()语句进行说明
但是这样定义数组的时候出现了问题nums[n],其中的n此时还为变量
我不知道该怎么弄了,待解答