用结构单独计算每个员工薪水的程序

时间:2015-05-22 12:44:37

标签: c arrays structure

手头的问题:

工人需要计算他的每周工资,这可以从以下方式获得:

  • 如果您每周工作40小时或更少,则需支付16小时
  • 如果你工作超过40小时,每个
  • 支付16欧元
  • 前40小时,每增加一小时20€
  • 您将保留15%的税和SS。

制作一个收集数据并显示5个工人的程序,显示每个工人的工资。

定义数据收集功能和计算工资的函数。

我的方法直到时间

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

#define EMP 5
int i;
int j;
struct work
{
  char name[20];
  int hours[5];
  float salary[8];
} t[EMP];

int main(void)
{
  for(i=0;i<EMP;i++) //Bucle para recolectar los datos
  {
  printf("\nThe name of the employeer :  ");
    scanf("%s",t[i].name);
  printf("\nHow many hours he works :  ");
    scanf("%d",t[i].hours);

//    printf("\nThe man works %d",yoh_work[i].horas);
  }
  if(t[i].hours<40)
  {
    t[i].salary=t[i].hours*16; //(yeah im know this doesn't work
  }

}
在此之后,我没有想法。请分享想法。

1 个答案:

答案 0 :(得分:0)

这里的要点是,您不需要在{<1}}和hours 内部结构中使用数组。你只需要一个变量。之后,您需要一组结构变量,就像您所做的那样。

所以,你的结构看起来应该是

salary

之后,您必须使用循环来请求用户输入来填充每个员工的字段(由struct work { char name[20]; int hours; //notice here float salary; //notice here } t[EMP]; 数组的每个变量引用)并相应地进行计算。

算法确实实现了这一点,如下所示,

  1. 询问员工姓名,将其存储在t中,t[i].name是索引。
  2. 询问工作时间,将其存储在i
  3. 重复1和2所需的次数,(此处t[i].hours次)
  4. 检查5是否为t[i].hours

    4.1。如果是,则计算如(简化,在进行实际计算时应考虑 tax 相关部分)

    > 40

    4.2。如果否,则计算如

    t[i].salary = ((float)40 * 16) + ((float)(t[i].hours - 40) * 20)

  5. 为所有结构执行此操作。

  6. 最后使用另一个循环,打印结果。
  7. 希望你明白了。请尝试实施,如果遇到问题,请回来,我们会在那里提供帮助。 : - )