C语言项目-员工录入排序

#include <stdio.h>
#include <stdlib.h>


typedef struct
{
    char name[10];
    int years;
    int age;


}Staff;


void input2(Staff *Number)
{
    printf("请输入员工姓名:");
    scanf("%s",Number->name);
    printf("请输入员工工龄:");
    scanf("%d",&Number->years);
    printf("请输入员工年龄:");
    scanf("%d",&Number->age);
}


void input1(Staff Number[],int n)
{
    int i=0;
    for(i;i<n;i++)
    {
        input2(&Number[i]);


    }


}
int CompareAge(Staff s1,Staff s2)
{
    return s1.age>s2.age;
}
int CompareYears(Staff s1,Staff s2)
{
    return s1.years>s2.years;
}






void sortNumber(Staff Number[],int n,int (*Compare)(Staff s1,Staff s2))
{
    int i=1;
    for(i;i<=n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(Compare(Number[j],Number[j+1]))
            {
                Staff t = Number[j];
                Number[j]=Number[j+1];
                Number[j+1]=t;
            }
        }
    }


}


void show(Staff s)
{
    printf("name=%s ",s.name);
    printf("age=%d ",s.age);
    printf("years=%d\n",s.years);
    printf("-------------");
}




void showNumber(Staff Number[],int n)
{
    for(int i=0;i<n;i++)
    {
        show(Number[i]);
    }


}






int main()
{


    Staff Number[5];
    input1(Number,5);
    sortNumber(Number,5,CompareYears);
    printf("按工龄排序如下:\n");
    showNumber(Number,5);
    sortNumber(Number,5,CompareAge);
    printf("按年龄排序如下:\n");
    showNumber(Number,5);


}

猜你喜欢

转载自blog.csdn.net/qq_41750725/article/details/79393886