如果该数不在数组中,则输出“无此数”。这15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。
#include <stdio.h>
int main()
{
int a[15] = {99, 97, 87, 76, 65, 63, 59, 58, 51, 43, 32, 31, 28, 15, 6};
int x, low, high, mid, n;
n = 15;
low = 0;
high = n - 1;
scanf("%d", &x);
while (low <= high){
mid = (low + high) / 2;
if (x > a[mid])
high = mid - 1;
else if (x < a[mid])
low = mid + 1;
else if (x == a[mid]){
printf("%d is %dth number!\n", x, mid+1);
break;
}
}
if (x != a[mid])
printf("No match!\n");
return 0;
}
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。