Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 二进制搜索并在排序数组中的正确位置添加一个数字,,,但在数组中不做任何更改_C_If Statement_For Loop_While Loop_Binary Search - Fatal编程技术网

C 二进制搜索并在排序数组中的正确位置添加一个数字,,,但在数组中不做任何更改

C 二进制搜索并在排序数组中的正确位置添加一个数字,,,但在数组中不做任何更改,c,if-statement,for-loop,while-loop,binary-search,C,If Statement,For Loop,While Loop,Binary Search,我制作了一个程序,允许用户添加一个数字,并通过排序数组中的二进制搜索来搜索正确的位置 这就是代码 #包括 内部主(空) { 整数数组[100]; int len=0; int help=0; int num=0; int middel=0; int first=0; int last=0; printf(“输入元素数:”); scanf(“%d”和“len”); 对于(int i=0;i0;i--) { 对于(int j=0;jarray[j+1]) { 帮助=数组[j]; 数组[j]=数组

我制作了一个程序,允许用户添加一个数字,并通过排序数组中的二进制搜索来搜索正确的位置


这就是代码


#包括
内部主(空)
{
整数数组[100];
int len=0;
int help=0;
int num=0;
int middel=0;
int first=0;
int last=0;
printf(“输入元素数:”);
scanf(“%d”和“len”);
对于(int i=0;i0;i--)
{
对于(int j=0;jarray[j+1])
{
帮助=数组[j];
数组[j]=数组[j+1];
数组[j+1]=帮助;
}
}
}
printf(“输入要添加的数字:”);
scanf(“%d”和&num);
第一个=0;
last=len-1;
middel=(第一个+最后一个)/2;
while(firstnum)
{
len++;
对于(int i=len-1;i>first;i--)
{
数组[i+1]=数组[i];
}
数组[first]=num;
}
else if(数组[first]first+1;i--)
{
数组[i+1]=数组[i];
}
数组[first+1]=num;
}
}
}

对于(int i=0;循环条件为
first@MikeCAT真正的程序员使用。
#include <stdio.h>

int main(void)
{
    int array[100];
    int len=0;
    int help=0;
    int num=0;
    int middel=0;
    int first=0;
    int last=0;

    printf("enter the number of elements :");
    scanf("%d",&len);
    for(int i=0;i<len;i++)
    {
        printf("enter the (%d) element :",i+1);
        scanf("%d",&array[i]);
    }
    for(int i=len-1;i>0;i--)
    {
        for(int j=0;j<i;j++)
        {
            if(array[j]>array[j+1])
            {
                help=array[j];
                array[j]=array[j+1];
                array[j+1]=help;
            }
        }
    }
    printf("enter the number you want to add :");
    scanf("%d",&num);
    first=0;
    last=len-1;
    middel=(first+last)/2;
    while(first<last)
    {
        if(num<array[middel])
        {
            last=middel-1;
            middel=(first+last)/2;
        }
        else if(num>array[middel])
        {
            first=middel+1;
            middel=(first+last)/2;
        }
        else if (first==last)
        {
            if(array[first]>num)
            {
                len++;
                for(int i=len-1;i>first;i--)
                {
                    array[i+1]=array[i];
                }
                array[first]=num;
            }
            else if(array[first]<=num)
            {
                len++;
                for(int i=len-1;i>first+1;i--)
                {
                    array[i+1]=array[i];
                }
                array[first+1]=num;
            }
        }
    }
    for(int i=0;i<len;i++)
    {
        printf("%d,",array[i]);
    }
    printf("\n");
    return 0;
}