你的二分法查找的C语言程序有两处问题,我帮你改好了(改动的地方见注释)
#include <stdio.h>
#include <math.h>
void main(){//这里把mian改成main
int a[10]={0,1,6,16,23,56,80,100,110,115}
int low,high,mid,found,n
low=0
high=9
found=0
printf("write a number:\n")
do{
scanf("%d",&n)
getchar()
}while(n<a[0]||a[9]<n)//这里把n小于a[9]改成a[9]小于n
while(low <= high){
mid=(low+high)/2
if(n==a[mid]){
found=1
break
}else if(a[mid]>n)
high=mid-1
else
low=mid+1
}
if(found==1){
printf("this number bit is %d\n",mid)
}else{
printf("NO no %d\n",n)
}
}
c语言的语句结束标志是分号。在C语言中分号“;”用于结束一个语句,就如同平日常用的句号“。”作用一样。C程序是由C语言写的,能完成特定功能的一套完整的指令。组成这些指令的基本元素,称为语句。一个C程序必须要有头文件、一个主程序,主程序必须要以‘{’开头,以‘}’结尾。
两者之间是语句文本。每行语句必须以‘’分号结尾。注意,所有标点必须用英文标点,如果用中文标点的话,程序会报错。
程序中有时候会有双斜线‘//’,这是单行注释符,它的右边的语句仅仅起注释作用,不会被执行;
此外,还有多行注释符‘/*’和‘*/’,这两个符号中间的内容不会被执行。
扩展资料
C语言 while(表达式)后面是没有分号的,如果不小心加上分号,系统也不会出现编译错误,但是程序却会不停的执行空操作,形成空循环体,无法执行“while(表达式);”后面的程序,得不到预计的效果。例如,在累加求和的程序中while循环加上分号产生错误。
在do…while循环语句中while后面是有分号的,与普通的语句一样,这个分号是用来结束语句的。如果遗漏了这个分号,程序不会通过编译进而产生错误。
因此,在用do…while循环语句时,不要忘记在while的后面加上分号,即使忘记了,编译器也会有所提示,而不会产生不可预见的错误。
注意:分号在do…while语句中代表一条语句的结束,并不代表循环体的结束。