该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#define N 2
typedef struct
{
int year, month, day;
}Date;
typedef struct
{
char name[10];
unsigned id;
Date birthday;
}Employee;
void Input(Employee *p, int n)
{
int i;
for (i = 0; i < n; i++, p++)
{
printf("输入第%d个员工的姓名 工号 生日(年 月 日):", i + 1);
scanf("%s%d%d%d%d", p->name, &p->id, &p->birthday.year, &p->birthday.month, &p->birthday.day);
}
}
Employee *Search(Employee *p1, Employee *p2, Date d)
{
while (p1 < p2)
{
if (p1->birthday.month == d.month && p1->birthday.day == d.day)
{
return p1;
}
p1++;
}
return NULL;
}
int main()
{
Employee a[N], *p;
Date d;
Input(a, N);
printf("\n请输入待查生日(月 日):");
scanf("%d%d", &d.month, &d.day);
p = Search(a, a+N, d);
if (p)
{
printf("\n%d月%d日过生日的员工有:\n", d.month, d.day);
printf("%8s%10s%10s%4s%5s\n", "姓名", "工号", "生日(年", "月", "日)");
}
else
{
printf("%d月%d日没有员工过生日。\n", d.month, d.day);
}
while (p)
{
printf("%8s%10d%10d%4d%4d\n", p->name, p->id, p->birthday.year, p->birthday.month, p->birthday.day);
p = Search(p + 1, a + N, d);
}
return 0;
}