C语言编程高手

来源:百度知道 编辑:UC知道 时间:2024/05/03 04:47:50
编写一个函数,用半折法查找某数是否在给定的升序数组中,如果在则输出“Find sucess!”并输出它是第几个数,否则输出“No find”。给定的数组有15个元素。它们的值在主函数中给出,待查找的数亦在主函数中输入。

#include "stdio.h"
#include "stdlib.h"
int main()
{
int numbers[20];
int find;
int temp = -30000;
void two_piece(int* num,int f,int left,int right);
printf("请输入15个不降数字\n");
for(int i = 1;i <= 15;i ++)
{
scanf("%d",&numbers[i]);
if( temp < numbers[i])
temp = numbers[i];
else
{
printf("不是不降数字,错误,重新运行\n");
exit(1);
}
}
printf("请输入要找的数字:\n");
scanf("%d",&find);
two_piece(numbers,find,1,15);
return 0;
}

void two_piece(int* num,int f,int left,int right)
{
if(left == right)
if(num[left] == f)
printf("我们找到了这个数在第%d个位子\n",left);
else
printf("我们没有找到这个数\n");
else
{
int center = (left+right)/2;
if(num[center] == f)
printf("我们找到了这个数在第%d个位子\n