| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1262 人关注过本帖
标题:输入职工号和姓名,按职工号的大小名字做调整,在查找出最大的职工号,,, ...
取消只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:5 
输入职工号和姓名,按职工号的大小名字做调整,在查找出最大的职工号,,,其中有一部分没看懂,求各位指教。。。
#include<stdio.h>
#include<string.h>
#define n 10
int main()
{
    void input(int [],char name[][8]);     //名字为什么要定义维数组。
    void sort(int [],char name[][8]);
    void search(int ,int [],char name[][8]);
    int num[n],number,flag=1,c;
    char name[n][8];
    input(num,name);
    sort(num,name);
    while(flag==1)
    {
        printf("\ninput number to look for:");
        scanf("%d",&number);
        search(number,num,name);
        printf("continue ot not(Y/N)?");
        getchar();
        c=getchar();
        if(c=='n'||c=='N')
          flag=0;
    }
    return 0;
}
void input(int num[],char name[n][8])
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("input no.:");
        scanf("%d",&num[i]);
        printf("input name:");
        getchar();                /*这两行是什么意思?
        gets(name[i]);                     getchar()是什么?*/
    }
}
void sort(int num[],char name[n][8])          /*sort函数的分类排序法没看懂*、*  求指教,*/
{
    int j,min,temp1;
    char temp2[8];
    for(int i=0;i<n-1;i++)
    {
        min=i;
        for(j=i;j<n;j++)
           if(num[min]>num[j])
               min=j;
        temp1=num[i];
        strcpy(temp2,name[i]);
        num[i]=num[min];
        strcpy(name[i],name[min]);
        num[min]=temp1;
        strcpy(name[min],temp2);
    }
        printf("\n result:\n");
        for(int i=0;i<n;i++)
           printf("\n %5d%10s",num[i],name[i]);
}
void search(int ,int num[],char name[n][8])
{
    int top,bott,mid,loca,sign;
    top=0;
    bott=n-1;
    loca=0;
    sign=1;
    if((n<num[0])||(n>num[n-1]))
       loca=-1;
    while((sign==1)&&(top<=bott))
    {
        mid=(top+bott)/2;
        if(n==num[mid])
         {     
          loca=mid;
          printf("no.%d,his name is %s.\n",n,name[loca]);
        sign=-1;
        }
    else if(n<num[mid])
        bott=mid-1;
    else
        top=mid+1;
    }
    if(sign==1||loca==-1)
        printf("%d not been found.\n",n);
}

[此贴子已经被作者于2017-3-17 17:11编辑过]

搜索更多相关主题的帖子: continue include search number 最大的 
2017-03-17 17:08
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
???
2017-03-19 17:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 3楼 ldsh304
char name[n][8]  这个为什么定义成二位字符数组??
2017-03-20 16:29
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 4楼 九转星河
什么是结构体?
2017-03-20 16:29
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 7楼 ldsh304
char [n][8]  中的[n]什么用。?
2017-03-20 18:15
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 8楼 ldsh304
好吧,。。还没学 。。。
2017-03-20 18:15
快速回复:输入职工号和姓名,按职工号的大小名字做调整,在查找出最大的职工号, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015492 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved