输出返回为0.00

时间:2019-11-07 05:33:02

标签: c pointers

在我的代码中,我应该要求用户输入销售总额,县销售税,州销售税,然后返回收集的总税,还返回州和县销售税是什么。

我没有错误,但是我的输出返回为:

您的县营业税为0.00 您的州营业税为0.00 您的总税收为0.00

这是我的代码:

#include <stdio.h>

void inputTaxData(int *, float *, float *);
float calculateTaxes(int, float, float);
void displayTaxData(float, float, float);
int main()


{
int totalSales;
float ctax, stax;
float totalTax;
inputTaxData(&totalSales, &ctax, &stax);
calculateTaxes(totalSales, ctax, stax);
displayTaxData(ctax, stax, totalTax);


    return 0;
}


void inputTaxData(int *totalSalesPtr,float *ctaxPtr, float *staxPtr)
{
int totalSales;
float ctax, stax;

printf("\nWhat is your total sales for the month?");
scanf("%d", &totalSales);
*totalSalesPtr = totalSales;

printf("\nWhat is your county sales tax?");
scanf("%f", &ctax);
*ctaxPtr = ctax;

printf("\nWhat is your state sales tax?");
scanf("%f", &stax);
*staxPtr = stax;
}


float calculateTaxes(int totalSales, float ctax, float stax)
{
float totalTax = totalSales * ctax + stax;
    return totalTax;
}

void displayTaxData(float ctax, float stax, float totalTax)
{

printf("\nYour County Sales tax is %.2f", &ctax);
printf("\nYour State Sales tax is %.2f", &stax);
printf("\nYour total tax collected is %.2f", totalTax);
}

1 个答案:

答案 0 :(得分:0)

这是代码中需要更正的部分。

问题1 : 在函数void inputTaxData(int *totalSalesPtr,float *ctaxPtr, float *staxPtr)中,您已经在传递变量的地址(指针)。因此,您不必在函数中重新声明局部变量。

修复: 您要做的就是将scanf获得的值分配给这些位置。

问题2 : 函数float calculateTaxes(int totalSales, float ctax, float stax)返回totalTax,但是main中未使用此返回值。

修复: 将返回的值分配给totalTax中的main

问题3 :在函数void displayTaxData(float ctax, float stax, float totalTax)中,您传递了参数的文字值的副本,但尝试打印ctax和{{1 }}。

修复:打印传递给该函数的参数的文字值。

应用这些修复程序,您的代码将如下所示:....

stax