公司员工基本信息管理程序设计 设计结构体数组,结构中包含数据为:员工编号、姓名、性别、年龄、职务、部门、住址。 设计各个函数
问题描述:
会无限循环
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int n;
struct employee
{
int num;
char name[20];
char sex;
char post[20];
char department[30];
char Addr[50];
int age;
};
struct employee peo[10];
void addmessages(struct employee peo[])
{
char c[2];
do
{
printf("员工编号.姓名.性别.年龄.职务.部门.住址\n");
scanf("%d %s %c %d %s %s %s",&peo[n].num,peo[n].name,&peo[n].sex,&peo[n].age,peo[n].post,peo[n].department,peo[n].Addr);
n++;
printf("\n继续输入下一次请按Y或y:");
scanf("%s",c);
}
while(!(strcmp(c,"Y"))||!(strcmp(c,"y")));
}
void show( struct employee peo[])
{
int i;
for(i=0; i<n; i++)
{
printf("%d %s %c %d %s %s %s\n",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
}
}
void find(struct employee peo[])
{
printf("输入部门,性别查找员工信息:");
int i; //n,
char bm[20];
char sex1;
scanf("%s %c",bm,&sex1);
for(i=0; i<n; i++)
{
if((strcmp(peo[i].department,bm)==0)&&(peo[i].sex == sex1))
{
printf("%d %s %c %d %s %s %s\n",peo[i].num,peo[i].name,peo[i].sex,peo[i].age,peo[i].post,peo[i].department,peo[i].Addr);
break;
}
}
if(i >= n)
printf("not found!\n");
}
main()
{
int menu ;
while (1)
{
printf ("1. 输入数据 \n");
printf ("2. 显示所有员工信息 \n");
printf ("3. 输入部门、性别,显示该部门的员工记录\n");
printf ("4. 结束.");
printf("请输入数字1—3:");
scanf("%d",&menu);
switch (menu)
{
case 1:
addmessages(peo);
break ;
case 2:
show(peo);
break;
case 3:
find(peo);
break;
case 4:
exit(0);
}
}
}
答
int n;应该初始化n为0
答
在哪个地方无限循环,我测试的输入4可以结束运行啊