int search(int* nums, int numsSize, int target){
int left = 0,right = numsSize-1,mid;
while(left <= right){
mid = (left + right) / 2;
if(nums[mid]==target)
return mid;
nums[mid] > target ? right = mid - 1:left = mid + 1;
}
return -1;
}
错误信息:
solution.c: In function ‘search’ Line 10: Char 51: error: lvalue required as left operand of assignment [solution.c] nums[mid] > target ? right = mid - 1:left = mid + 1;
错误原因:
赋值运算符优先级比条件运算符 ? :低,加上括号即可
修改后:
nums[mid] > target ? (right = mid - 1):(left = mid + 1);
成功提交