永发信息网

编写利用折半查找法从整型数组中检索指定数值的函数,若找到则返回该数值在数组中的位置。(见补充)

答案:2  悬赏:50  手机版
解决时间 2021-03-31 06:03
  • 提问者网友:几叶到寒
  • 2021-03-30 12:35
编写利用折半查找法从整型数组中检索指定数值的函数,若找到则返回该数值在数组中的位置。(见补充)
最佳答案
  • 五星知识达人网友:轮獄道
  • 2021-03-30 13:26

#include
int Find(int a[], int n, int num) {
int low = 0,mid,high = n - 1;
while(low <= high) {
mid = (low + high)/2;
if(a[mid] == num) return mid;
if(a[mid] > num) high = mid - 1;
else low = mid + 1;
}
return -1;
}
int main() {
int a[] = {1,2,4,5,6,7,8,9,10,12,13,25,36,47,58,69};
int res,n = sizeof(a)/sizeof(a[0]);
res = Find(a,n,10);
if(res >= 0) printf("找到了%d在数组中的索引是%d。
",10,res);
else printf("对不起,没有找到数值是%d的元素。
");
return 0;
}追问请问能不能做到任意输入一串数字,然后随便由用户输入一个数,通过运行程序告诉用户该数字位置呢?请问能不能做到任意输入一串数字,然后随便由用户输入一个数,通过运行程序告诉用户该数字位置呢?追答可以的。
#include
// 返回ch在s中的索引位置,不存在时,返回-1
int Position(char s[], char ch) {
int i;
for(i = 0; s[i]; ++i)
if(s[i] == ch) return i;
return -1;
}
int main() {
char str[100],c,pos;
printf("请输入字符串 : ");
gets(str);
printf("请输入任意一个字符 : ");
c = getchar();
pos = Position(str,c);
if(pos < 0) printf("串"%s"中不存在字符\"%c\"
",str,c);
else printf("\"%c\"在串"%s"中的索引位置是%d
",c,str,pos);
return 0;
}
全部回答
  • 1楼网友:胯下狙击手
  • 2021-03-30 13:38
请用用什么语言,高级编程语言,还是脚本语言。追问c语言,C++
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯