编写一个函数实现对数组里的工资信息进行统计,要求返回平均工资
时间: 2024-05-08 07:19:02 浏览: 11
没有问题,我可以为您实现这个函数。以下是一种可能的实现:
```
def compute_avg_salary(salaries):
total_salary = sum(salaries)
num_employees = len(salaries)
if num_employees == 0:
return 0
else:
return total_salary / num_employees
```
这个函数接受一个工资数组作为输入,并计算出工资的总和和员工人数。如果员工人数为0,则函数返回0。否则,函数计算并返回平均工资。您可以将这个函数作为模块的一部分来使用,或者直接在您的代码中使用它。
相关问题
编写一个计算年平均工资的代码用c语言
好的,以下是C语言代码实现:
```c
#include <stdio.h>
float calculate_avg_salary(int salary_list[], int num_years) {
float total_salary = 0, avg_salary;
for(int i = 0; i < num_years; i++) {
total_salary += salary_list[i];
}
avg_salary = total_salary / num_years;
return avg_salary;
}
int main() {
int salary_list[] = {50000, 60000, 70000, 80000, 90000};
int num_years = sizeof(salary_list) / sizeof(salary_list[0]);
float avg_salary = calculate_avg_salary(salary_list, num_years);
printf("年平均工资为:%.2f", avg_salary);
return 0;
}
```
调用方法:
- 定义一个整型数组 `salary_list`,包含每年的工资;
- 定义一个整型变量 `num_years`,表示数组元素的个数;
- 调用 `calculate_avg_salary()` 函数计算平均工资,并返回结果;
- 在 `main()` 函数中输出结果。
输出结果:
```
年平均工资为:70000.00
```
其中,`salary_list`是一个包含每年工资的数组,`calculate_avg_salary()`函数计算平均工资并返回结果。在 `main()` 函数中输出结果时,使用 `printf()` 函数将结果输出到控制台。
用c语言编写一个简单的员工工资管理系统,定义结构体类型的数组存储员工的基本信息:工号、姓名、基本工资。要求编写自定义函数实现如下功能: (1)输入n名员工的信息:工号、姓名、基本工资; (2) 输出口名员工的信息:工号、姓名、基本工资; (2) 根据工号查找并输出某个员工的信息; (3)查找某两个工资金额范国内的所有员工并输出对 应信息; (4) 计算所有员工的平均工资; (5) 计算并输出工资最高的员工信息及工资最低的员 工信息; (6) 添加员工信息功能:若有新入职的员工,请将他们的信息存入结构体数组中; (7)删除员工信息功能:假如有员工离职,请将其信息删除并保证数组的连续性; (8) 请按照工号或姓名或工资从低到高的顺序输出所有 员工的信息。 (9)编写主函数,要求可通过功能菜单选择执行相应的功能。
以下是用C语言编写的员工工资管理系统,包括要求实现的所有功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_EMPLOYEES 100
// 定义员工结构体类型
typedef struct Employee {
char id[10]; // 工号
char name[20]; // 姓名
float salary; // 基本工资
} Employee;
// 全局变量,存储所有员工信息的数组
Employee employees[MAX_EMPLOYEES];
// 全局变量,记录当前数组中已有的员工数量
int employeeCount = 0;
// 自定义函数:输入n名员工的信息
void inputEmployees() {
printf("请输入员工数量:");
scanf("%d", &employeeCount);
for (int i = 0; i < employeeCount; i++) {
printf("请输入第%d个员工的信息:\n", i+1);
printf("工号:");
scanf("%s", employees[i].id);
printf("姓名:");
scanf("%s", employees[i].name);
printf("基本工资:");
scanf("%f", &employees[i].salary);
}
}
// 自定义函数:输出n名员工的信息
void outputEmployees() {
printf("所有员工信息如下:\n");
printf("工号\t姓名\t基本工资\n");
for (int i = 0; i < employeeCount; i++) {
printf("%s\t%s\t%.2f\n", employees[i].id, employees[i].name, employees[i].salary);
}
}
// 自定义函数:根据工号查找并输出某个员工的信息
void outputEmployeeById(char* id) {
for (int i = 0; i < employeeCount; i++) {
if (strcmp(employees[i].id, id) == 0) {
printf("员工信息如下:\n");
printf("工号\t姓名\t基本工资\n");
printf("%s\t%s\t%.2f\n", employees[i].id, employees[i].name, employees[i].salary);
return;
}
}
printf("未找到工号为%s的员工\n", id);
}
// 自定义函数:查找某两个工资金额范围内的所有员工并输出对应信息
void outputEmployeesBySalaryRange(float minSalary, float maxSalary) {
printf("工资在%.2f~%.2f之间的员工信息如下:\n", minSalary, maxSalary);
printf("工号\t姓名\t基本工资\n");
for (int i = 0; i < employeeCount; i++) {
if (employees[i].salary >= minSalary && employees[i].salary <= maxSalary) {
printf("%s\t%s\t%.2f\n", employees[i].id, employees[i].name, employees[i].salary);
}
}
}
// 自定义函数:计算所有员工的平均工资
float getAverageSalary() {
float sum = 0;
for (int i = 0; i < employeeCount; i++) {
sum += employees[i].salary;
}
return sum / employeeCount;
}
// 自定义函数:计算并输出工资最高的员工信息及工资最低的员工信息
void outputEmployeeWithMaxAndMinSalary() {
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < employeeCount; i++) {
if (employees[i].salary > employees[maxIndex].salary) {
maxIndex = i;
}
if (employees[i].salary < employees[minIndex].salary) {
minIndex = i;
}
}
printf("工资最高的员工信息如下:\n");
printf("工号\t姓名\t基本工资\n");
printf("%s\t%s\t%.2f\n", employees[maxIndex].id, employees[maxIndex].name, employees[maxIndex].salary);
printf("工资最低的员工信息如下:\n");
printf("工号\t姓名\t基本工资\n");
printf("%s\t%s\t%.2f\n", employees[minIndex].id, employees[minIndex].name, employees[minIndex].salary);
}
// 自定义函数:添加员工信息功能
void addEmployee() {
if (employeeCount >= MAX_EMPLOYEES) {
printf("员工数量已达到上限,无法添加新员工\n");
return;
}
printf("请输入新员工的信息:\n");
printf("工号:");
scanf("%s", employees[employeeCount].id);
printf("姓名:");
scanf("%s", employees[employeeCount].name);
printf("基本工资:");
scanf("%f", &employees[employeeCount].salary);
employeeCount++;
}
// 自定义函数:删除员工信息功能
void deleteEmployee(char* id) {
for (int i = 0; i < employeeCount; i++) {
if (strcmp(employees[i].id, id) == 0) {
for (int j = i; j < employeeCount - 1; j++) {
employees[j] = employees[j+1];
}
employeeCount--;
printf("工号为%s的员工信息已删除\n", id);
return;
}
}
printf("未找到工号为%s的员工,无法删除\n", id);
}
// 自定义函数:按照工号或姓名或工资从低到高的顺序输出所有员工的信息
void outputEmployeesByOrder() {
int order = 0;
printf("请选择排序方式:\n");
printf("1.按照工号排序\n");
printf("2.按照姓名排序\n");
printf("3.按照工资排序\n");
scanf("%d", &order);
printf("所有员工信息如下:\n");
printf("工号\t姓名\t基本工资\n");
if (order == 1) { // 按照工号排序
for (int i = 0; i < employeeCount; i++) {
for (int j = i+1; j < employeeCount; j++) {
if (strcmp(employees[i].id, employees[j].id) > 0) {
Employee temp = employees[i];
employees[i] = employees[j];
employees[j] = temp;
}
}
}
}
else if (order == 2) { // 按照姓名排序
for (int i = 0; i < employeeCount; i++) {
for (int j = i+1; j < employeeCount; j++) {
if (strcmp(employees[i].name, employees[j].name) > 0) {
Employee temp = employees[i];
employees[i] = employees[j];
employees[j] = temp;
}
}
}
}
else if (order == 3) { // 按照工资排序
for (int i = 0; i < employeeCount; i++) {
for (int j = i+1; j < employeeCount; j++) {
if (employees[i].salary > employees[j].salary) {
Employee temp = employees[i];
employees[i] = employees[j];
employees[j] = temp;
}
}
}
}
for (int i = 0; i < employeeCount; i++) {
printf("%s\t%s\t%.2f\n", employees[i].id, employees[i].name, employees[i].salary);
}
}
// 主函数
int main() {
int option = 0;
char id[10];
float minSalary, maxSalary;
while (1) {
printf("请选择功能:\n");
printf("1.输入n名员工的信息\n");
printf("2.输出n名员工的信息\n");
printf("3.根据工号查找并输出某个员工的信息\n");
printf("4.查找某两个工资金额范围内的所有员工并输出对应信息\n");
printf("5.计算所有员工的平均工资\n");
printf("6.计算并输出工资最高的员工信息及工资最低的员工信息\n");
printf("7.添加员工信息\n");
printf("8.删除员工信息\n");
printf("9.按照工号或姓名或工资从低到高的顺序输出所有员工的信息\n");
printf("0.退出程序\n");
scanf("%d", &option);
switch (option) {
case 1:
inputEmployees();
break;
case 2:
outputEmployees();
break;
case 3:
printf("请输入要查找的员工工号:");
scanf("%s", id);
outputEmployeeById(id);
break;
case 4:
printf("请输入要查找的工资范围(最小值 最大值):");
scanf("%f %f", &minSalary, &maxSalary);
outputEmployeesBySalaryRange(minSalary, maxSalary);
break;
case 5:
printf("所有员工的平均工资为%.2f\n", getAverageSalary());
break;
case 6:
outputEmployeeWithMaxAndMinSalary();
break;
case 7:
addEmployee();
break;
case 8:
printf("请输入要删除的员工工号:");
scanf("%s", id);
deleteEmployee(id);
break;
case 9:
outputEmployeesByOrder();
break;
case 0:
printf("程序已退出\n");
return 0;
default:
printf("无效的选项,请重新输入\n");
}
}
return 0;
}
```
使用时可以在主函数中调用不同的功能函数来完成相应的操作。每个自定义函数都实现了一个具体的功能,例如输入员工信息、输出员工信息、查找员工信息等等。主函数通过一个循环不断等待用户输入选项,根据用户的选择调用相应的功能函数。