反向链表的查找练习
根据上题,建立一个WORKER反向链表,输入多个工人信息,然后进行以下查找并显示结果:(1)查找所有工资大于1000的工人,显示他们的ID、姓名、工资;
(2)查找姓名为"yaoming"的工人(假设你输入的若干工人信息中就有一个工人是这个姓名),显示他的ID和工资;
(3)计算所有工人的总工资,并计算平均工资。
#include<stdio.h>
#include<malloc.h>
struct WORKER
{
int id;
char name[10];
float salary;
struct WORKER *next;
};
void main()
{
struct WORKER *head=NULL,*p;
int i,n;
float z,f;
printf("请输入工人个数:");
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
p=(struct WORKER*)malloc(sizeof(struct WORKER));
p->next=head;
head=p;
printf("工人名字:");
gets(p->name);
printf("ID:");
scanf("%d",&p->id);
printf("工资:");
scanf("%f",&p->salary);
getchar();
}
p=head;
while(p!=NULL)
{
if(p->salary>1000)
{
printf("ID:%d\n名字:%s\n工资:%.2f\n",p->id,p->name,p->salary);
}
p=p->next;
}
z=0;f=0;
for(i=0;i<n;i++)
{
z+=p->salary;
z++;
}
f=z/n;
printf("总工资:%.2f\n平均工资:%.2f\n",z,f);
}
问题1:
[local]1[/local]
请问怎么没显示出“yaoming”的信息呢
问题2:[local]2[/local]
怎个又是什么问题呢?
新人求大神解答,谢谢!!!
[此贴子已经被作者于2016-3-28 15:34编辑过]