用折半查找法查找某一字符在字符串中的位置
程序员文章站
2022-07-14 07:56:47
...
一、题目描述
从键盘输入一个字符,用折半查找法找出该字符在已排序的字符串str中的位置。若该字符不在str中,则打印输出**。
二、分析解答
此题主要考察字符串的应用,由于C语言并没有字符串类型,因此,需要使用字符数组来存储字符串。
代码如下:
#include<stdio.h>
int main(){
char str[14] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n'};
int lower = 0, higher = 13;
int mid;
char find;
scanf("%c",&find);
while(lower <= higher){
mid = (lower + higher) / 2;
if(find == str[mid]){
printf("location is: %d \n", mid + 1);
break;
}else if(find > str[mid]){
lower = mid +1;
}else{
higher = mid -1;
}
if(lower >higher ){
printf("**\n");
}
}
return 0;
}
结果如下: