| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1304 人关注过本帖
标题:输入职工号和姓名,按职工号的大小名字做调整,在查找出最大的职工号,,, ...
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:9 
输入职工号和姓名,按职工号的大小名字做调整,在查找出最大的职工号,,,其中有一部分没看懂,求各位指教。。。
#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
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:10 
程序代码:
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();//接收num[i]后的分隔符(防止name[i]接收错误),比如空格、回车
gets(name[i]);//接收name[i]字符串,包括空格
}
}
void sort(int num[],char name[n][8])//冒泡排序
{
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];//1
strcpy(temp2,name[i]);
num[i]=num[min];
strcpy(name[i],name[min]);
num[min]=temp1;
strcpy(name[min],temp2);//6
      //1---6行是把num[i]和num[min]进行交换  以及  name[i]和name[min]进行交换
}
printf("\n result:\n");
for(int i=0;i<n;i++)
printf("\n %5d%10s",num[i],name[i]);
}


[此贴子已经被作者于2017-3-19 21:49编辑过]

2017-03-19 21:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:10 
感觉用结构体方便很多~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-20 11:32
花脸
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
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:0 
回复 5楼 花脸
char name[n][8];    //name[i]可以看成一个字符串,并且它的长度最长为8,  一般名字都是多个字符组成
2017-03-20 16:37
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:0 
struct node
{
    char name[8];
    int num;
};

这就是结构体
2017-03-20 16:39
花脸
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.072832 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved