【C语言】建立一个职工基本情况统计表,基本情况包括职工号,姓名,性别,年龄等内容,要求统计1女职工占总数的比例,2所有职工的平均年龄,3、30-40,40-50,50-60这三个年龄段的职工人数。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string.h>

struct personnel
{
    char no[10];
    char name[10];
    char sex[4];
    int age;
}p[50];
int main()
{
    int i=0,j=0,count1=0,count2=0,count3=0;
    double count=0,sum=0;
    char m;
    char sex[4] = "女";
    while(1)
    {
        printf("请输入职工号,姓名,性别,年龄:\n");
        scanf("%s",p[i].no);
        scanf("%s",p[i].name);
        scanf("%s",p[i].sex);
        scanf("%d",&p[i].age);
        getchar();//在scanf一个char之前吃掉一个回车 以免下一个char接收的是回车
        i++;
        printf("是否需要继续输入?(Y/N)\n");
        scanf("%c",&m);
        if(m=='n'||m=='N')
            break;
    }
    while(1)
    {
        if(strcmp(sex,p[j].sex)==0)
            count++;
        if(p[j].age>=30&&p[j].age<40)
            count1++;
        if(p[j].age>=40&&p[j].age<50)
            count2++;
        if(p[j].age>=50&&p[j].age<60)
            count3++;
        sum+=p[j].age;
        j++;
        if(j==i)
            break;
    }

    printf("女职工的比例为:%.2f\n所有职工的平均年龄为:%.2f\n30~40岁的职工人数为%d\n40~50岁的职工人数为%d\n50~60岁的职工人数为%d\n",count/i,sum/i,count1,count2,count3);
        return 0;
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来解答你的问题。 首先,你需要定义一个结构体表示职工的信息,包括工作证号、姓名年龄、工资等字段。例如: ```c struct Employee { int id; // 工作证号 char name[20]; // 姓名 int age; // 年龄 int salary; // 工资 }; ``` 然后,你需要定义一个数组来存储所有职工的信息。例如: ```c struct Employee employees[100]; int numEmployees = 0; // 记录职工总数 ``` 接下来,你需要编写函数来输入职工信息,计算平均年龄平均工资以及各年龄段职工人数的分布情况。例如: ```c void inputEmployees() { int sumAge = 0; int sumSalary = 0; int numAge1 = 0; // 年龄在 20 岁以下的职工人数 int numAge2 = 0; // 年龄在 20 岁到 30 岁之间的职工人数 int numAge3 = 0; // 年龄在 30 岁到 40 岁之间的职工人数 int numAge4 = 0; // 年龄在 40 岁以上的职工人数 for (int i = 0; i < numEmployees; i++) { printf("请输入第 %d 个职工的工作证号、姓名年龄、工资:\n", i + 1); scanf("%d %s %d %d", &employees[i].id, employees[i].name, &employees[i].age, &employees[i].salary); sumAge += employees[i].age; sumSalary += employees[i].salary; if (employees[i].age < 20) { numAge1++; } else if (employees[i].age < 30) { numAge2++; } else if (employees[i].age < 40) { numAge3++; } else { numAge4++; } } double avgAge = (double)sumAge / numEmployees; double avgSalary = (double)sumSalary / numEmployees; printf("职工平均年龄为 %.2f,平均工资为 %.2f\n", avgAge, avgSalary); printf("各年龄段职工人数的分布情况如下:\n"); printf("20 岁以下:%d 人\n", numAge1); printf("20 岁到 30 岁之间:%d 人\n", numAge2); printf("30 岁到 40 岁之间:%d 人\n", numAge3); printf("40 岁以上:%d 人\n", numAge4); } ``` 最后,你需要在主函数中调用 `inputEmployees` 函数来输入职工信息并输出统计结果,例如: ```c int main() { printf("请输入职工总数:\n"); scanf("%d", &numEmployees); inputEmployees(); return 0; } ``` 希望能够帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值