gpt4 book ai didi

c - C语言工资单生成程序

转载 作者:行者123 更新时间:2023-11-30 21:31:08 25 4
gpt4 key购买 nike

这是问题:

Write an interactive program to generate pay slips for the staff of size 12 employees (2 members are clerks, one computer operator, 6 salesmen, 3 helpers) , working in a small chemist retail shop. Assumptions can be made wherever necessary. The payslip should display the employee no., employee name, no. of days worked during the month, date of generation of the payslip, month for which the salary is being paid, all the details of the payment, deductions, gross-pay and net-pay.

当我运行程序时,它说无效指针,即使我没有使用指针谁能告诉我这个程序有什么错误吗?

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

char name[30][30], designation[20[20], empid[12][12];
int i;
int n = 12;
int working_days = 27;
float basic[12], days_absent[12], days_present[12], gross_salary[20], pf[12], allowance[12], net[12];

void enter_details_of_employee();
void display();
void get_time();

void main()
{
int k;
printf("Enter 1 to enter employee details and 2 to display salary\n");
scanf("%d", &k);

if(k == 1)
{
enter_details_of_employee();
}
else if(k == 2)
{
display();
get_time();
}
else
{
printf("invalid choice");
}
}


void enter_details_of_employee ()
{
int choice;
int clerk_counter = 0, operator_counter = 0, salesman_counter = 0, helper_counter = 0, max = 0;

do {

printf("\n enter details of employees\n");

printf("enter employee name\n");
scanf("%c", &name);

printf("enter employee id\n");
scanf("%c", &empid);

printf("enter your choice for employee designation\n 1.clerk \n 2.computer operator\n 3. salesman\n 4.helper\n");
scanf("%d", &choice);

if (choice == 1)
{
if(clerk_counter == 2)
{
printf("sorry, you have already entered the details of all clerks\n");
}

else

{
designation = "clerk";
basic = 8000.00;
printf("enter no of days absent\n");
scanf("%d", &days_absent);
days_present = working_days - days_absent;
gross_salary = basic - ((days_absent / working_days) * basic);
pf = gross_salary*0.1;
allowance = gross_salary*0.55;
net = (gross - pf) + allowance;
clerk_counter++;

}



}
else if (choice == 2)
{
if(operator_counter == 1)
{
printf("sorry, you have already entered the details of all computer operators\n");
}

else

{
designation = "computer operator";
basic = 9000;
printf("enter no of days absent\n);
scanf("%d", &days_absent);
days_present = working_days - days_absent;
gross_salary = basic - ((days_absent / working_days) * basic);
pf = gross_salary*0.12;
allowance = gross_salary*0.75;
net = (gross - pf) + allowance;
operator_counter++;

}


}

else if (choice == 3)
{
if(salesman_counter == 6)
{
printf("sorry, you have already entered the details of all salesman\n");
}

else

{
designation = "salesman";
basic = 10000;
printf("enter no of days absent\n);
scanf("%d", &days_absent);
days_present = working_days - days_absent;
gross_salary = basic - ((days_absent / working_days) * basic);
pf = gross_salary*0.15;
allowance = gross_salary*0.95;
net = (gross - pf) + allowance;
salesman_counter++;

}


}

else if (choice == 4)
{
if(salesman_counter == 3)
{
printf("sorry, you have already entered the details of all helpers\n");
}

else

{
designation = "helper";
basic = 6500;
printf("enter no of days absent\n);
scanf("%d", &days_absent);
days_present = working_days - days_absent;
gross_salary = basic - ((days_absent / working_days) * basic);
pf = gross_salary*0.08;
allowance = gross_salary*0.45;
net = (gross - pf) + allowance;
helper_counter++;

}


}

else
{
printf("invalid choice");
}

}
while (max!=12);
}

void get_time()
{
time_t t = time(NULL);
struct tm tm = *localtime(&t);

printf("now: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
}

void display()
{
printf("SALARY SLIP OF EMPLOYEES ";
printf("---------------------------------------------------------------------------------------------------");
printf("empid\t name\t days_absent\t days_present\t gross_salary\t PF\t allowance\t net");
printf("---------------------------------------------------------------------------------------------------");

for(i=0;i<n;i++)
{
printf(empid[i][i] name[i][i] basic[i] days_absent[i] days_present[i] gross_salary[i] pf[i] allowance[i] net);
}

}

最佳答案

错误:

1)语法错误1:

char name[30][30], designation[20[20], empid[12][12];  // Bracket mismatch

2)语法错误2:

char designation[20[20];
designation = "clerk"; // What is this?? ..the invalid pointer error

3) 自己休息一下或者尝试使用 -Wall 选项进行编译。

关于c - C语言工资单生成程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18784086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com