gpt4 book ai didi

c - 输出显示全 0。 gross 和 OT 不计算

转载 作者:太空宇宙 更新时间:2023-11-04 07:24:36 24 4
gpt4 key购买 nike

输出显示全 0。 gross 和 OT 不计算..

#include <stdio.h>


#define STD_HOURS 40.0
#define OT_RATE 1.5
#define SIZE 5


void read_hours(float worked_hours[], long int clockNumber[]);
void calculate_gross(float wage[], float worked_hours[], float gross);
void calculate_gross_ot(float wage[], float worked_hours[]);
void printFunction(long int clockNumber[], float wage[], float worked_hours[], float OT[], float gross);

int i;



int main()
{

long int clockNumber [SIZE] = {98401, 526488, 765349, 34645, 127615};/* employee ID */
float gross = 0.0; /* gross */
float OT [SIZE] = {}; /* overtime */
float wage [SIZE] = {10.6, 9.75, 10.5, 12.25, 8.35}; /* hourly wage */
float worked_hours [SIZE] = {}; // Hours worked


read_hours(worked_hours, clockNumber);

if (worked_hours[i]>STD_HOURS)
{

calculate_gross_ot(wage, worked_hours);

}

else

{
calculate_gross(wage,worked_hours, gross);

}
printFunction(clockNumber, wage, worked_hours, OT, gross);

return(0);
}



void read_hours(float worked_hours[], long int clockNumber[])
{



for (i=0; i<SIZE; i++)
{

printf("\n Enter Hours for Emlployee ID: %ld\n", clockNumber[i]);
scanf ("%f", &worked_hours[i]);

}


}

void calculate_gross(float wage[], float worked_hours[], float gross)
{


for(i=0; i<SIZE; i++)

gross=(wage[i]*worked_hours[i]);
}


void calculate_gross_ot(float wage[], float worked_hours[])
{


float gross;
float OT[SIZE];

for (i=0; i<SIZE; i++)
{



/* calculating overtime hours */
OT[i]=worked_hours[i]-STD_HOURS;

/* calculating gross pay with overtime */
gross = (STD_HOURS*wage[i]) + (OT[i]*OT_RATE*wage[i]);
//}

}

}

void printFunction(long int clockNumber[], float wage[], float worked_hours[], float OT[], float gross)
{


/* creating a table for the output */
printf("------------------------------------------------\n");
printf("%7s","Clock#");
printf("%7s","Wages");
printf("%7s","Hours");
printf("%7s","OT");
printf("%7s\n","Gross");
printf("------------------------------------------------\n");
for (i=0; i<SIZE; i++)

{
/* printing the results */
printf("%6ld", clockNumber[i]);
printf("%10.2f",wage[i]);
printf("%6.1f", worked_hours[i]);
printf("%6.1f", OT[i]);
printf("%10.2f",gross);
printf("\n");

}


}

该程序用于计算有和没有加类时间的总收入。输出显示 gross 和 OT 全部为 0。请帮忙找出错误所在。

最佳答案

在第一种情况下,您按值传递 gross

在第二种情况下,您根本没有传递它(该函数有一个名为 gross 的本地函数)。

在这两种情况下,每当相应的函数发生gross 更改时,此更改不会传播到调用方。

您需要通过指针传递 gross,或者使用 return 语句(并适当更改返回类型)从函数返回值。

关于c - 输出显示全 0。 gross 和 OT 不计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348817/

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