Because your implementation is not correct. Try:
#include<stdio.h>
int main()
{
int array[]={2,10,44,55,66,78,87,89,90},m,left,right,key=90,counter=0;
left=0;
right=sizeof(array)/sizeof(array[0]) -1;
while(left <= right)
{
m=(left+right)/2;
counter++;
if(key == array[m])
break;
else if(key>array[m])
left = m + 1;
else
right=m-1;
}
printf("the number of iterations are %d\n",counter);
if ( key == array[m])
printf("the item was found at index %d\n", m);
return 0;
}