int arr5[8]={10,20,30,40,50,60,70,80};
len=8;
int beg=0,mid,end=len-1,loc;
mid=int((beg+end)/2);
printf("%d",mid);
我试图编写二进制搜索代码,但无法将(beg+end)/2的值类型转换为mid。
error: expected expression before 'int'
mid=int((beg+end)/2);
^~~
对于在语句中使用类型说明符int
的初学者
mid=int((beg+end)/2);
没有意义
写 就足够了mid=(beg+end)/2;
由于赋值右侧表达式中的所有操作数都是int
类型,因此求值的类型也为int
。
那么在C中你必须写
mid= ( int )((beg+end)/2);