【问题标题】:Program that calculates the salary of each employee individually with a structure使用结构单独计算每个员工的工资的程序
【发布时间】:2015-05-22 12:44:37
【问题描述】:

手头的问题:

一个工人需要计算他的周薪,计算如下:

  • 如果您每周工作 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
  }

}

在这之后,我没有想法了。请分享想法以继续。

【问题讨论】:

  • c# 标签似乎无关紧要。这似乎是一项家庭作业。
  • 您正在通过定义i 的循环外部的索引i 访问数组。出于某种原因,您还有一个包含 5 个整数的数组来表示每个工人的小时数和 8 个浮点数表示工资,但是您将它们当作单个 int/float 来使用。
  • @SonerGönül 此处的所有问题都必须遵循 SO 规则和政策。只要符合现场标准,家庭作业问题就可以了。 stackoverflow.com/help/on-topic。 “请求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的总结,以及您在解决问题时遇到的困难的描述。”

标签: c arrays structure


【解决方案1】:

这里的重点是,hourssalary 在结构内部 不需要数组。你只需要一个变量。之后,您需要一个结构变量数组,就像您所做的那样。

所以,你的结构应该是这样的

struct work
{
  char name[20];
  int hours;      //notice here
  float salary;   //notice here
} t[EMP];

之后,您必须使用循环来请求用户输入以填充每个员工的字段(由t 数组的每个变量引用)并进行相应的计算。

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

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

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

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

    4.2。如果否,计算类似

    t[i].salary = ((float)t[i].hours * 16);

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

  6. 最后使用另一个循环,打印结果。

希望你明白了。请尝试实施,如果遇到问题,请回来,我们将在那里提供帮助。 :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    相关资源
    最近更新 更多