结构体习题:通过职工信息输出高于平均工资的职工信息及高于平均工资的职工人数

Description

有5个职工,每个职工的数据包括:职工号(字符数组型)、姓名(字符数组型)、工资(整型),编写程序要求从键盘上输入职工们的数据,输出高于平均工资的职工信息及高于平均工资的职工人数。

Input

输入仅5行,输入5个职工的职工号、姓名、工资,要求数据之间用空格隔开。

Output

输出工资高于平均工资的职工信息,每个职工信息占一行;输出高于平均工资的职工人数,占一行。

Sample Input

111 yi 9700
222 er 9800
333 san 6000
444 si 9500
555 wu 5600

Sample Output

111 yi 9700
222 er 9800
444 si 9500
number=3

Source

方法一(结构体+数组):

#include   <stdio.h>

struct test

{

    char  num[20];

    char  name[20];

    int   salary;

};

int  main()

{

    struct  test peo[5];

    int i,sum=0,ave,number=0;

    for ( i = 0; i <5; i++)

    {

        scanf("%s%s%d",peo[i].num,peo[i].name,&peo[i].salary);

    }

    for ( i = 0; i <5; i++)

    {

        sum=sum+peo[i].salary;

    }

    ave=sum/5;

    for ( i = 0; i <5; i++)

    {

        if (peo[i].salary>ave)

        {

            printf("%s %s %d\n",peo[i].num,peo[i].name,peo[i].salary);

            number++;

        }

    }

    printf("number=%d",number);

    

    return   0;

}

方法二(结构体+指针):

#include  <stdio.h>

struct test

{

    char  num[20];

    char  name[20];

    int  salary;

};

int    main()

{

    struct  test  peo[5];

    struct  test  *p;

    int sum=0,ave,number=0;

    for ( p = peo; p <peo+5; p++)

    {

        scanf("%s%s%d",(*p).num,(*p).name,&(*p).salary);

    }

    for ( p = peo; p < peo+5; p++)

    {

        sum=sum+(*p).salary;

    }

    ave=sum/5;

    for ( p = peo; p < peo+5; p++)

    {

        if ((*p).salary>ave)

        {

            printf("%s %s %d\n",(*p).num,(*p).name,(*p).salary);

            number++;

        }

    }

    printf("number=%d",number);

    return  0;

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值