谁能帮我看看这个程序有什么问题
程序功能: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("该工号不存在!");
}
----------------解决方案--------------------------------------------------------
排序那块
好好看看,数上排序的例子很多,随便一个就可以
----------------解决方案--------------------------------------------------------
不止这一点,当我运行时甚至连函数中 定义整形变量都有毛病
----------------解决方案--------------------------------------------------------
我想知道排序中这一块用法到底对不对;
strcpy(word,Num[i]);
strcpy(Num[i],Num[i+1]);
strcpy(Num[i+1],word);}
----------------解决方案--------------------------------------------------------
Num应该改为Name吧,应该是把名字交换,而不是把序号交换...
----------------解决方案--------------------------------------------------------
改了一下能实现功能了,下面是代码:
#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);
}
----------------解决方案--------------------------------------------------------