这个程序为什么不能正常输入所需要的数据,怎样修改?
#define N 5#include"string.h"
#include"stdio.h"
struct zg_type
{
char num;
char name[21];
char sex;
char bm;
}s[N];
typedef struct zg_type S;
input(S s[])
{
int i;
for(i=0;i<N;i++)
{
printf("请输入工号、姓名、性别、部门\n");
scanf("%5s%5c%5s",s[i].num,s[i].name,&s[i].sex,s[i].bm);
printf("输出");
}
}
void print(S s[])
{
int i;
for(i=0;i<N;i++)
printf("输出工号、姓名、性别、部门\n");
printf("%5s %5s %5s %5s",s[i].num,s[i].name,s[i].sex,s[i].bm);
}
void sort(S s[])
{
int t,i,j;
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(s[i].num>s[j].num)
{
t=s[i].num;
s[i].num=s[j].num;
s[j].num=t;
}
}
}
for(i=0;i<N;i++)
{
printf("输出工号、姓名、性别、部门\n");
printf("%s %s %c %s",s[i].num,s[i].name,s[i].sex,s[i].bm);
}
}
main()
{
input(s);
print(s);
sort(s);
}