yzz123 发表于 2020-10-21 21:41:34

总是提示没找到数字的选择

#include<stdio.h>
int main()
{
        void qipao(int a[]);
        void fen(int a[],int n,int high,int low);
        int a,i;
        printf("输入10个数字的数据库\n");
        for(i=0;i<10;i++)
                scanf("%d",&a);
        qipao(a);
}
void qipao(int a[])
{
        int e,j,t,n;
        for(e=0;e<9;e++)
                for(j=0;j<9-e;j++)
                {
                        if(a>a)
                        {
                                t=a;
                                a=a;
                                a=t;
                        }
                }
                        for(e=0;e<10;e++)
                                printf("%d ",a);
               
                        printf("输入一个你想查找的数字\n");
                        scanf("%d",&n);
                        fen(a,n,9,0);

               
}
void fen(int a[],int n,int high,int low)
{   
        int mid,k;
        while(low<=high)
        {
                mid=(high+low)/2;
                if(a==n)
                {
                        k=0;
                        break;
                }
                if(n<a)
                        high=mid-1;
                if(n>a)
                        low=mid+1;
                if(low>high)
                {
                        k=1;
             break;
                }
        }
        if(k=1)
        {
          printf("查找不到此个数字,请查正后输入\n");
                getchar();
                scanf("%d",&n);
                fen(a,n,9,0);
        }
        if(k=0)
                printf("这个数字是第%d个数字,它为%d",mid,n);
}
               

sunrise085 发表于 2020-10-21 21:56:02

文件末尾部分 if的条件写错啦
应该是 if (k==1) 和 if (k==0)   你少写了一个等号,把比较运算符写成赋值运算符了

yzz123 发表于 2020-10-22 16:21:31

sunrise085 发表于 2020-10-21 21:56
文件末尾部分 if的条件写错啦
应该是 if (k==1) 和 if (k==0)   你少写了一个等号,把比较运算符写成赋值 ...

谢谢大神拉
页: [1]
查看完整版本: 总是提示没找到数字的选择