C语言中的折半查找问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 07:28:41
请各位高手找哈我的错误,总是报错( error C2059: syntax error : '['),我的程序是#include<stdio.h>
#include<stdlib.h>
#define n 10
void main()
{int r=9,l=0,a[n],i,j,t,x,m;
for(i=0;i<=9;i++)a[i]=rand()%100;
printf("the original numbers made by system by accident are:\n");
for(i=0;i<=9;i++)printf("%-4d",a[i]);
for(i=0;i<n-1;i++)
{for(j=0;j<n-1-i;j++)
{if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}}
for(i=0;i<=9;i++)printf("%4d",a[i]);
printf("please input the number that you want:\n");
scanf("%d",&x);
while(r>=l){m=(r+l)/2;
if(x=a[m]){printf("the system has found the number you want\n");
printf("%d",m);}
if(x>a[m])l=m+1;
if(x<[m])r=m-1;
printf("the number you want does not exist\n");}}}

#include<stdio.h>
#include<stdlib.h>
#define n 10
void main()
{int r=9,l=0,a[n],i,j,t,x,m;
for(i=0;i<=9;i++)a[i]=rand()%100;
printf("the original numbers made by system by accident are:\n");
for(i=0;i<=9;i++)printf("%-4d",a[i]);
for(i=0;i<n-1;i++)
{for(j=0;j<n-1-i;j++)
{if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}}
for(i=0;i<=9;i++)printf("%4d",a[i]);
printf("please input the number that you want:\n");
scanf("%d",&x);
while(r>=l){m=(r+l)/2;
if(x=a[m]){printf("the system has found the number you want\n");
printf("%d",m);}
if(x>a[m])l=m+1;
if(x<a[m])r=m-1;
printf("the number you want does not exist\n");}}}

你的那里少了a, if(x<a[m]) x=m-1, 以后要把版排好这样别人才会给你看。

if(x<[m])r=m-1;