Выход возвращается как 0,00 - PullRequest
0 голосов
/ 07 ноября 2019

в моем коде я должен попросить пользователя ввести общий объем продаж, налог с продаж округа, налог с продаж штата, затем вернуть собранный налог, а также вернуть налог с продаж штата и округа.

У меня нет ошибок, но мои данные возвращаются как:

Ваш налог с продаж округа составляет 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 голосов
/ 07 ноября 2019

Вот части кода, которые нуждаются в исправлении.

Проблема 1 : В функции void inputTaxData(int *totalSalesPtr,float *ctaxPtr, float *staxPtr) вы уже передаете адреса (указатели) переменных. вам не нужно повторно объявлять локальные переменные в функции.

Исправить : Все, что вам нужно сделать, - это присвоить значения, полученные с помощью scanf, этим местам.

Проблема 2 : функция float calculateTaxes(int totalSales, float ctax, float stax) возвращает totalTax, но это возвращаемое значение не используется в main.

Fix : назначитьвозвращаемое значение totalTax в main.

Выпуск 3 : В функции void displayTaxData(float ctax, float stax, float totalTax) вы передаете копию литеральных значений аргументов, но пытаетесь напечатать адреса ctax и stax.

Fix : вывести буквальные значения аргументов, переданных этой функции.

При применении исправлений ваш код будет выглядеть следующим образом .....

#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);
  totalTax = calculateTaxes(totalSales, ctax, stax);//assign the returned value
  displayTaxData(ctax, stax, totalTax);

  return 0;
}


void inputTaxData(int *totalSales,float *ctax, float *stax)
{

  printf("\nWhat is your total sales for the month?");
  scanf("%d", totalSales);//assign the scanned value to the variable

  printf("\nWhat is your county sales tax?");
  scanf("%f", ctax);//assign the scanned value to the variable

  printf("\nWhat is your state sales tax?");
  scanf("%f", stax);//assign the scanned value to the variable

}


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);//print value
  printf("\nYour State Sales tax is %.2f", stax);//print value
  printf("\nYour total tax collected is %.2f", totalTax);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...