| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 723 人关注过本帖
标题:谁能帮我看看这个程序有什么问题
只看楼主 加入收藏
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
结帖率:25%
收藏
 问题点数:0 回复次数:5 
谁能帮我看看这个程序有什么问题
程序功能:1:输入10个职工名字和工号
         2:按工号由小到大排列;
                  3:输入工号找出名字.
#include "stdio.h"
#include "string.h"
char name[10][10];int num[10];
main()
{void Name_scanf(char);
 void Num_scanf(int);
 void Paixu(char,int);
 void Chazhao(int);
 int  n;
 printf("请输入名字:\n");
 Name_scanf(name[10][10]);    
 printf("请输入工号:\n");
 Num_scanf(num[10]);
 printf("按工号从小到大排列为:\n");
 Paixu(name[10][10],num[10]);
 printf("请输入工号:");
 scanf("%d",&n);
 Chazhao(n);  
}
void Name_scanf(char NAME[10][10])
{int i;
 for(i=0;i<10;i++)
    gets(NAME[i]);
}
void Num_scanf(int NUM[10])
{int i;
 for(i=0;i<10;i++)
    scanf("%d",&NUM[i]);
}
void Paixu(char Name[10][10],int Num[10])
{int i,max;
 char word[10];
 for(i=0;i<9;i++)
    if(Num[i]>Num[i+1])
      {max=Num[i];Num[i]=Num[i+1];Num[i+1]=max;
       strcpy(word,Num[i]);
       strcpy(Num[i],Num[i+1]);
       strcpy(Num[i+1],word);}
 for(i=0;i<10;i++)
   printf("%10s%10d",Name[i],Num[i]);
}
void Chazhao(int N)
{int i;
    for(i=0;i<10;i++)
       if(N==num[i])
         {printf("该员工的姓名是:");
          puts(name[i]);}
       else
          printf("该工号不存在!");
}
2007-12-06 15:50
flyaway57
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-3-28
收藏
得分:0 
排序那块
好好看看,数上排序的例子很多,随便一个就可以
2007-12-06 16:58
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
不止这一点,当我运行时甚至连函数中 定义整形变量都有毛病
2007-12-06 17:08
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
我想知道排序中这一块用法到底对不对;
        strcpy(word,Num[i]);
       strcpy(Num[i],Num[i+1]);
       strcpy(Num[i+1],word);}
2007-12-06 17:18
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
得分:0 
Num应该改为Name吧,应该是把名字交换,而不是把序号交换...
2007-12-06 18:41
wolaixiazai
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-11
收藏
得分:0 
改了一下能实现功能了,下面是代码:
#include "stdio.h"
#include "string.h"
char name[10][10];int num[10];

void Name_Num_scanf()
{int i;
 for(i=0;i<10;i++)
    {scanf("%s",name[i]);
     scanf("%d",&num[i]);
    }
}

void Paixu()//排序
{int i,j,max;
 char word[10];
  for(j=0;j<9;j++)
  for(i=0;i<9-j;i++)
    if(num[i]>num[i+1])
      {max=num[i];num[i]=num[i+1];num[i+1]=max;
       strcpy(word,name[i]);
       strcpy(name[i],name[i+1]);
       strcpy(name[i+1],word);
      }
 for(i=0;i<10;i++)
   printf("%10s%10d\n",name[i],num[i]);
}
void Chazhao(int N)
{int i;
 for(i=0;i<10;i++)
    {if(N==num[i])
        {printf("该员工的姓名是:");
         puts(name[i]);break;}
      if(i==10)
       printf("该工号不存在!");
    }
}

void main()
{
  int  n;
  printf("请输入名字和工号:\n");
  Name_Num_scanf();        
  printf("按工号从小到大排列为:\n");
  Paixu();
  printf("请输入工号:");
  scanf("%d",&n);
  Chazhao(n);  
}
2007-12-06 20:51
快速回复:谁能帮我看看这个程序有什么问题
数据加载中...
 
   



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

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