用折半查找法查找某一字符在字符串中的位置

一、題目描述

       從鍵盤輸入一個字符,用折半查找法找出該字符在已排序的字符串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;


}

       結果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章