一个棘手的c语言问题啦

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:48:25
#include <stdio.h>
#define M 16
void main ()
{

int a[M],i,n,t,l,flag=1,top,end,k,m=0,sign,g;
char c;
printf("enter data:")
scanf("%d",&a[0]);
i=1;
while(i<M)
{
scanf("%d",&a[i]);
if(a[i]>=a[i-1])
i++;
else
printf("enter this data again:\n");
}
for(i=0;i<M;i++)
printf("%-3d",a[i]);
printf("\n");
while(flag==1)
{
printf("enter data:");
scanf("%d",&l);
sign=0;
top=0;
end=M-1;
if(l<a[0] || l>a[M-1])
loca=1;
while(! sign && top<=end)
{
k=(end+top)/2;
if(a[k]==l)
{
printf("has found %d,its position is %d\n",l,k+1);
sign=1;
}
else if (a[k]>l)
end=k-1;
else top=k+1;
}
if(! sign

下面是我帮你改好的,可以达到你的要求!!!
#include <stdio.h>
#define M 16
void main ()
{

int a[M],i,n,t,l,flag=1,top,end,k,m=0,sign,g,loca;
char c,e;
printf("enter data:") ;
scanf("%d",&a[0]);
i=1;
while(i<M)
{
scanf("%d",&a[i]);
if(a[i]>=a[i-1])
i++;
else
printf("enter this data again:\n");
}
for(i=0;i<M;i++)
printf("%-3d",a[i]);
printf("\n");
while(flag==1)
{
printf("enter data:");
scanf("%d",&l);
sign=0;
top=0;
end=M-1;
if(l<a[0] || l>a[M-1])
loca=1;
while(! sign && top<=end)
{
k=(end+top)/2;
if(a[k]==l)
{
printf("has found %d,its position is %d\n",l,k+1);
sign=1;
}
else if (a[k]>l)
end=k-1;
else t