代码能运行 但是在输入部门时就出bug
准确来说是编号输入1时输入到部门时会出bug,有时候输入部门时也会bug
struct stu
{
char name[10];
char bumen[20];
long int yfgongzi;
long int baoxian;
long int shuijin;
long int sfgongzi;
}str[];
int n[];
int i=0;
void iscanf();
void iprintf();
void ifind();
int main()
{
printf("------------------\n");
printf("输入编号进行操作\n");
printf("1.输入职工数据\n");
printf("2.显示全体职工数据\n");
printf("3.查找\n");
printf("0.退出\n");
while(1)
{
int num;
scanf("%d",&num);
switch(num)
{
case 1:
iscanf();
break;
case 2:
iprintf();
break;
case 3:
ifind();
break;
case 0:
return 0;
default:
printf("请在0~3内选择\n");
}
}
}
void iscanf()
{
printf("请输入编号\t");
scanf("%d",&n[i]);
printf("请输入姓名\t");
scanf("%s",&str[n[i]].name);
printf("请输入部门\t");
scanf("%s",&str[n[i]].bumen);
printf("请输入应付工资\t");
scanf("%d",&str[n[i]].yfgongzi);
printf("请输入保险\t");
scanf("%d",&str[n[i]].baoxian);
printf("税金\t");
scanf("%d",&str[n[i]].shuijin);
printf("输入完毕\n");
i++;
}
void iprintf()
{
int j;
for(j=0;j<=i;j++)
{
printf("编号: %d\n",n[j]);
printf("姓名: %s\n",str[n[j]].name);
printf("部门: %s\n",str[n[j]].bumen);
printf("应付工资:%d\n",str[n[j]].yfgongzi);
printf("保险: %d\n",str[n[j]].baoxian);
printf("税金: %d\n",str[n[j]].shuijin);
printf("实付工资: %d\n",(str[n[j]].yfgongzi-str[n[j]].baoxian-str[n[j]].shuijin));
}
}
void ifind()
{
printf("输入部门值\n");
char arr[20];
int j;
scanf("%s",&arr);
for(j=0;j<=i;j++)
{
if(strcmp(arr,str[n[j]].bumen)==0)
{
printf("编号: %d\n",n[j]);
printf("姓名: %s\n",str[n[j]].name);
printf("部门: %s\n",str[n[j]].bumen);
printf("应付工资:%d\n",str[n[j]].yfgongzi);
printf("保险: %d\n",str[n[j]].baoxian);
printf("税金: %d\n",str[n[j]].shuijin);
printf("实付工资: %d\n",(str[n[j]].yfgongzi-str[n[j]].baoxian-str[n[j]].shuijin));
}
}
}