-4

これは質問です:

小さな薬局の小売店で働く 12 人の従業員 (事務員 2 人、コンピューター オペレーター 1 人、セールスマン 6 人、ヘルパー 3 人) の従業員の給与明細を作成する対話型プログラムを作成します。仮定は、必要に応じて行うことができます。給与明細には、従業員番号、従業員名、番号を表示する必要があります。その月の勤務日数、給与明細の作成日、給与が支払われている月、支払いのすべての詳細、控除、総支払額、正味支払額。

プログラムを実行すると、無効なポインターと表示されます。ポインターを使用していないのに、このプログラムにどのような間違いがあるか教えてもらえますか?

 #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);
    }

    }
4

2 に答える 2