函数,数组,排序-c语言

输入3个职工的姓名和职工号,按职工号从小到大排列,姓名顺序也随之调整。并输入一个职工号,用折半查找法查找该职工姓名。不知道哪里错了,输入完毕就退出程序,不知道怎么调试


#include 
#include 
#define N 3
int main(){
    void input(int num[],char name[][8]);
    void sort(int num[],char name[][8]);
    void find(int num[],char name[][8],int num1);
    int num[N];//存放职工号
    char name[N][8];//存放姓名
    input(num,name);
    sort(num,name);
    int n;
    printf("要查找的职工号:\n");
    scanf("%d",&n);
    find(num,name,n);
} 
void input(int num[],char name[][8]){
    int i;
    for(i=0;iprintf("NO.:");
        scanf("%d",&num[i]);
        printf("name:");
        getchar();//回车要清除掉 
        gets(name[i]);        
    } 
}

void sort(int num[],char name[][8]){     //排序 
    int i,j,t,min;
    char temp[8];
    for(i=0;i-1;i++){
        min=i;
        for(j=i+1;j<=N-1;j++)
            if(num[j]strcpy(temp[8],name[min]);
        num[min]=num[i];
        strcpy(name[min],name[i]);
        num[i]=t;
        strcpy(name[i],temp[8]);
    }
    for(i=0;iprintf("%d  %s\n",num[i],name[i]);
} 

void find(int num[],char name[][8],int num1){ //查找 
    int head=0;
    int end=N-1;
    int mid=(head+end)/2;
    int flag=0;
    while(head<=end){
        if(num1-1;
        else if(num1>num[mid])head=mid+1;
        else{
            flag=1;
            printf("找到了,该职工姓名为:%s\n",name[mid]);
        } 
    }
    if(flag=0)printf("没找到该职工号!\n"); 
}

目测
strcpy(temp[8],name[min]);
->
strcpy(temp,name[min]);
下面
strcpy(name[i],temp[8]);
也同理。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^