错误,求帮助
总是出现runtime error,请问哪里有问题?#include<stdio.h>
#include "string.h"
# define E struct Employee
E
{
char Enum[15];
char Ename[20];
char Esex[5];
char Epay[20];
struct date
{int day;
int month;
int year;
}Edate;
};
void welcome()
{
printf("\n");
printf("\t*********************************\n");
printf("\t* *\n");
printf("\t* 欢迎您使用本管理系统 *\n");
printf("\t* *\n");
printf("\t*********************************\n");
printf("\n");
}
void mainmenu()
{
printf("\n");
printf("\t******菜单选项*******\n");
printf("\n");
printf("\t1.输入员工信息\n");
printf("\t2.对员工信息排序\n");
printf("\t3.退出管理系统\n");
printf("\t***************************");
printf("\n\t左边数字对应功能选择,请选1到4;");
}
void f1(E a[],int n)
{int i,b,b1,b2,b3;
printf("输入功能\n");
for(i=0;i<n;i++)
{
printf("输入第%d员工信息\n",i+1);
printf("请输入员工编号:");
scanf("%s",a[i].Enum);
printf("请输入员工姓名:");
scanf("%s",a[i].Ename);
printf("请输入员工性别:(0为女,1为男)");
scanf("%s",&b);
if (b=='0')
strcpy(a[i].Esex,"女");
else
strcpy(a[i].Esex,"男");
printf("请输入员工工资:");
scanf("%s",a[i].Epay);
printf("请输入员工生日:");
scanf("%d%d%d",&b1,&b2,&b3);
a[i].Edate.day=b1;
a[i].Edate.month=b2;
a[i].Edate.year=b3;
}
}
void f2(E a[],int n)
{ int i,j;E temp;
printf("排序功能\n");
for(i=0;i<n-1;i++)
for(j=1;j<n-i;j++)
if(a[j].Enum<a[j+1].Enum)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void f3(E a[],int n)
{
int i;
printf("号码 姓名 性别 工资 出生日期 \n");
for(i=0;i<n;i++)
{printf("%s %s %s ",a[i].Enum,a[i].Ename,a[i].Esex);
printf("%d-%d-%d %f\n",a[i].Edate.day,a[i].Edate.month,a[i].Edate.year,a[i].Epay);}
getchar();
}
void sele(E a[],int n)
{
int k,m;
while(1)
{system("cls");welcome();getch();system("cls");
mainmenu();
scanf("%d",&k);
while((k>4||k<1))
{system("cls");mainmenu();scanf("%d",&k);}
switch(k)
{case 1:
printf("输入员工数\n");
scanf("%d",&m);
f1(a,m);f3(a,m);
break;
case 2:
f2(a,m);printf("排序后的员工列表\n");f3(a,m);
break;
case 3:printf("谢谢使用,再见\n");
}}
}
main()
{
E s[20];
sele(s,20);
}