大一c语言:看看逻辑哪里有错,编译器没有报错

// 题目是数组15个数排序,然后输入一个数看是否在里面,并且用折半法找出该数下标
#include<stdio.h>
#define N 15
int Date(int a[],int n);
int Print(int a[],int n);
int Search(int a[],int b,int c);
int main()
{
int n,x,b,c;
int a[N]={1,56,24,89,63,44,50,87,99,64,25,64,86,45,82};
Date(a,n); //排序
printf("成绩顺序是:\n");
Print(a,n); //打印排序结果
Search(a,b,c);
return 0;
}

int Date(int a[],int n)
{
int i,j,k,temp1;
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(a[j]>a[k])
{
k=j;
}
}
if(k!=i)
{
temp1=a[k];a[k]=a[i];a[i]=temp1;
}
}
}

int Print(int a[],int n)
{
int i;
for(i=0;i<N;i++)
{
printf("%101d%4d\n",a[i]);
}
}

int Search(int a[],int b,int c)
{
int low=0,high=N-1,mid,x;
printf("输入一个数:");
scanf("%d",&x);
while(low<=high)
{
mid=(high+low)/2;
if(x>a[mid])
low=mid+1;
else if(x<a[mid])
high=mid-1;
else
return mid;
}
return -1;
}

供参考:

#include <stdio.h>
#define N 15
void Date(int a[], int n);     //修改
void Print(int a[], int n);    //修改
int  Search(int a[], int n);  //修改
int main()
{
    int n, x;  //修改
    int a[] = { 1,56,24,89,63,44,50,87,99,64,25,65,86,45,82 };//修改
    n = sizeof(a) / sizeof(a[0]);  //修改    
    Date(a, n); //排序
    printf("成绩顺序是:\n");
    Print(a, n); //打印排序结果
    x = Search(a, n);  //修改
    if (x >= 0)
        printf("a[%d]=%d", x, a[x]);
    else
        printf("Not Found");
    return 0;
}

void  Date(int a[], int n)
{
    int i, j, k, temp1;
    for (i = 0; i < n - 1; i++)  //修改
    {
        k = i;
        for (j = i + 1; j < n; j++)  //修改
        {
            if (a[j] < a[k])   //修改
            {
                k = j;
            }
        }
        if (k != i)
        {
            temp1 = a[k]; a[k] = a[i]; a[i] = temp1;
        }
    }
}

void  Print(int a[], int n)
{
    int i;
    for (i = 0; i < n; i++)    //修改
    {
        printf("%4d", a[i]);  //修改
    }
    printf("\n");             //修改
}

int Search(int a[], int n)   //修改
{
    int low = 0, high = n - 1, mid, x;  //修改
    printf("输入一个数:");
    scanf("%d", &x);
    while (low <= high)
    {
        mid = (high + low) / 2;
        if (x > a[mid])
            low = mid + 1;
        else if (x < a[mid])
            high = mid - 1;
        else
            return mid;
    }
    return -1;
}