二分法可以有效减少CPU计算量加快其反应速度
此代码功能:判断输入数是否是数组中的数字若是则输出行列
/*初学C语言,有不足还请指正*/
#include<stdio.h>
#include"math.h"
#include"conio.h"
int main()
{
while (1)
{
int i = 0;
int k = 0;
int j = 0;
int low = 0;
int high = 0;
int mid = 0;
int q = 0;
int a[2][5] = { {-12, 0, 6, 16, 23},
{56,80,100,110,115} };
scanf_s("%d", &i);
high = a[1][4];
low = a[0][0];
mid = int((low + mid) / 2);
while (low < high) //核心代码
{
if (i > mid)
{
low = mid + 1;
mid = int((low + high) / 2);
}
else
{
high = mid - 1;
mid = int((high + low) / 2);
}
}
for (j = 0; j < 2; j++)
{
for (q = 0; q < 5; q++)
{
k = k + 1;
if (i == a[j][q])
{
printf("\n%d行%d列\n", j + 1, q + 1);
break;
}
else
{
continue;
}
}
}
if (k == 10)
{
printf("\n没有%d这个数!\n", i);
}
}
}