| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8009 人关注过本帖
标题:十个职工的姓名,职工号
只看楼主 加入收藏
zhb151017212
Rank: 1
等 级:新手上路
帖 子:41
专家分:6
注 册:2012-10-15
结帖率:73.33%
收藏
已结贴  问题点数:10 回复次数:12 
十个职工的姓名,职工号
/*输入十个职工的姓名,职工号。
按职工号大小顺序输出,姓名也随着调整。
要求输入一职工号,折半查找,从主函
数输入要查找的职工号,输出该职工的姓名。*/

#include<stdio.h>
#include<string.h>
int main()
{
    int i,j,temp;int key;
    int p=0; char staffList[10];
    //char string[]
     char staffList[10]={{"刘翔","201003020076"},
                        {"姚明","20100302001"},
                        {"宋健","201003020077"},
                        {"宋丹丹","201003020054"},
                        {"马大文","201003020090"},
                        {"孙二林","201003020017"},
                        {"王三","201003020012"},
                        {"段五","201003020040"},
                        {"小六","201003020080"},
                        {"李四",201003020069"}};
    for(i=0;i<10;i++)
        scanf("staff=%lf\n",staffList[i]);
        for(j=0;j<10;j++)
            for(i=j;i<9-j;i++)
                if(staffList[i]>staffList[i+1]){
                    temp=staffList[i];
                staffList[i]=staffList[i+1];
                staffList[i+1]=temp;
                }
                for(i=0;i<10;i++)
                    printf("从小到大输出%f\n",staffList[i]);

                while(p==0){
                    printf("input a staff's number:\n");//折半查找???
                    scanf("%lf",&key);
                    if(key==staffList[i])
                    {
                        printf("%f ",staffList[i]);
                        p=1;
                    }
                            else{
                        
                        }
                    if(p==0)
                        printf("输入有误,重新出入!\n");
                }
                        return 0;        
}
//数组有误总改不对!求大神。。。
搜索更多相关主题的帖子: include 姓名 
2012-11-03 18:50
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
程序代码:
 char staffList[10]={{"刘翔","201003020076"},
                        {"姚明","20100302001"},
                        {"宋健","201003020077"},
                        {"宋丹丹","201003020054"},
                        {"马大文","201003020090"},
                        {"孙二林","201003020017"},
                        {"王三","201003020012"},
                        {"段五","201003020040"},
                        {"小六","201003020080"},
                        {"李四",201003020069"}};

我去。。。这只是一维数组。。。你这太让编译器为难了。。

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-11-03 19:20
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
本人新手,理解不透,这数组也太含蓄了啊,楼主,I服了you!!!!!!!!!!!!!!!!!!!!!!!

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-03 19:25
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:2 
楼主,你太难为编译器了。
我是新手,说错勿怪:
#include<stdio.h>
#include<string.h>
int main()
{
    int i,j,temp;int key;
    int p=0; char staffList[10];
    //char string[]  /*这一行貌似没用*/
     char staffList[10]={{"刘翔","201003020076"},/*字符数组就是字符数组,整形数组就是整形数组,不能混用,
                        {"姚明","20100302001"},     就算能,我想也是高手用,新手还是老老实实分开定义两
                        {"宋健","201003020077"},    个数组吧,一个char,一个int*/
                        {"宋丹丹","201003020054"},    /*还有就算是当成二维数组理解也不对呀*/
                        {"马大文","201003020090"},
                        {"孙二林","201003020017"},
                        {"王三","201003020012"},
                        {"段五","201003020040"},
                        {"小六","201003020080"},
                        {"李四",201003020069"}};
    for(i=0;i<10;i++)
        scanf("staff=%lf\n",staffList[i]);/*%lf是浮点型的,和你的数组不符*/
        for(j=0;j<10;j++)
            for(i=j;i<9-j;i++)
                if(staffList[i]>staffList[i+1]){
                    temp=staffList[i];
                staffList[i]=staffList[i+1];
                staffList[i+1]=temp;
                }
                for(i=0;i<10;i++)
                    printf("从小到大输出%f\n",staffList[i]);/*这个%f也不对*/

                while(p==0){
                    printf("input a staff's number:\n");//折半查找???
                    scanf("%lf",&key);              /*这里没看出折半,只是让输入员工编号*/
                    if(key==staffList[i])         
                    {
                        printf("%f ",staffList[i]);
                        p=1;
                    }
                            else{
                        
                        }
                    if(p==0)
                        printf("输入有误,重新出入!\n");
                }
                        return 0;        
}
数组我也不太懂,改成这样不知道行不行
char staffList[10][]={"刘翔",“徐达”,“蔡明”。。。。};
int staff's_key[10][]={"123456","1234456"......};
字符数组和整型数组没法混用的。。。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-03 19:51
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main ()

{
    char     staffList[10][2][100]= {{"刘翔","201003020076"},                //这是一个三维数组,10行,2列,高度100
                                    {"姚明","20100302001"},
                                    {"宋健","201003020077"},
                                    {"宋丹丹","201003020054"},
                                    {"马大文","201003020090"},
                                    {"孙二林","201003020017"},
                                    {"王三","201003020012"},
                                    {"段五","201003020040"},
                                    {"小六","201003020080"},
                                    {"李四","201003020069"}};

    int     i;
    int     j;

    for (i = 0;i < 10;i++)
        for (j = 0;j < 2;j++)
            printf ("%s\n", staffList[i][j]);

    return 0;
}

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-11-03 20:10
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
楼上高手,多维数组啊。。。。。没敢用过,

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-03 20:16
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:0 
学习

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-03 20:20
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
5楼说的好像实现不了啊,定义的是字符数组char型的,那么每个元素就应该式2个字节,怎么去放整型啊,整型4个字节的,是不是会出错呀,没事过。
本人新手,说错勿怪,阿弥陀佛

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-03 20:22
zhb151017212
Rank: 1
等 级:新手上路
帖 子:41
专家分:6
注 册:2012-10-15
收藏
得分:0 
回复 5楼 admin_xyz
三维数组 我也搞不清楚。。。谢谢哦。。。
2012-11-03 20:54
jun331207100
Rank: 2
等 级:论坛游民
帖 子:12
专家分:37
注 册:2012-10-25
收藏
得分:3 
你的问题  应该有一个结构  用类也可以  对于折半查找  你应该先和(a+b)/2进行比较  这才能显示出折半  对于排序  因为编号是字符串  应该用strcmp函数
2012-11-03 21:53
快速回复:十个职工的姓名,职工号
数据加载中...
 
   



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

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