c语言 我是c语言初学者 希望大家帮忙解决 谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/02 13:57:20
#include <stdio.h>
#define N 10
main()
{ int x, mid, lo, hi;
static int a[N]={ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 };
int *p=a;
scanf( "%d", &x );
lo=___(1)___; hi=N-1;
while(lo<=hi)
{ mid=(lo+hi)/2;
if( x= =p[mid] ) ___(2)___;
else if( x >*(p+__(3)__) ) lo=mid+1;
else hi=__(4)__;
}
if(lo___ (5)____hi) printf("Found %d at %d\n", x, mid);
else printf("%d not found\n", x);

#include <stdio.h>
#define N 10
main()
{ int x, mid, lo, hi;
static int a[N]={ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 };
int *p=a;
scanf( "%d", &x );
lo=___0___; hi=N-1;
while(lo<=hi)
{ mid=(lo+hi)/2;
if( x= =p[mid] ) __break___;
else if( x >*(p+_mid__) ) lo=mid+1;
else hi=__mid-1__;
}
if(lo___<=___hi) printf("Found %d at %d\n", x, mid);
else printf("%d not found\n", x);
}

我这个是对的,在VC中试验过了

#include <stdio.h>
#define N 10
main()
{ int x, mid, lo, hi;
static int a[N]={ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 };
int *p=a;
scanf( "%d", &x );
lo=___0___; hi=N-1;
while(lo<=hi)
{ mid=(lo+hi)/2;
if( x= =p[mid] ) __break___;
else if( x >*(p+_mid__) ) lo=mid+1;
else hi=__mid-1__;
}
if(lo___>____hi) printf("Found %d at %d\n&