그래서 은행 계좌 (학교 실습실)를 계산하는 프로그램을 만들고 있는데,이 함수는 계좌에서 인출 된 수표를 계산하는 것입니다. 예금으로 잘. 여기 함수에 * double과 double을 추가하려고합니다.
는 내 (내가 사용한다는 것을) 여기int main(void)
{
char code;
double amount, service, balance;
double amtCheck, amtDeposit, openBalance, closeBalance;
int numCheck, numDeposit;
if (!(fpIn = fopen("account.txt", "r"))) {
printf("account.txt could not be opened for input.");
exit (1);
}
if (!(fpOut = fopen("csis.txt", "w"))) {
printf("csis.txt could not be opened for output.");
exit (1);
}
amount = 0.0;
service = 0.0;
balance = 0.0;
amtCheck = 0.0;
amtDeposit = 0.0;
openBalance = 0.0;
closeBalance = 0.0;
numCheck = 0.0;
numDeposit = 0.0;
outputHeaders();
while (!feof(fpIn)){
fscanf(fpIn, "%c %lf\n", &code, &amount);
if (code == 'I') {
initialBalance(amount, &balance, &service, &openBalance);
}
else if (code == 'D'){
deposit(amount, &balance, &service, &numDeposit, &amtDeposit);
}
else
{
check(amount, &balance, &service, &numCheck, &amtCheck);
}
}
closeBalance = balance - service;
outputSummary(numDeposit, amtDeposit, numCheck, amtCheck, openBalance, service, closeBalance);
fclose(fpIn);
fclose(fpOut);
return 0;
}
주 내 기능 (내가 사용한다는 것을)
void check(double amount, double *balance, double *service, int *numCheck, double *amtCheck)
{
++*numCheck;
service = numCheck * 0.06;
amtCheck += amount;
balance -= amtCheck;
}
서비스가 서비스 요금과 $ 0.06 당입니다입니다 확인 입금. numCheck는 철회 된 수표입니다. amtCheck는 수표에 인출 된 금액입니다. 잔액은 해당 월 말에 인출 한 총 금액 ($)입니다.
(void check) 서비스에 numCheck * 0.06 (service = numCheck * 0.06)의 제품을 지정하려고하는데 어떤 이유로 그것이 나를 허용하지 않습니다. amtCheck + amount의 값을 amtCheck (amtCheck + = amount)에 할당하려고 시도하는 것과 동시에 나 또한 허용하지 않습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?
은 (내가뿐만 아니라 예금을 계산하는 다른 기능을 가지고 있지만 같은 문제 가지고) 그 값을 사용하거나 값을 할당 할 때 당신은 당신의 포인터 역 참조 할 필요가
'뿐만 아니라 같은 problem'을 가진 –
John3136
service = numDeposit * 0.03; \t amtDeposit + = amount; 그것들은 일하지 않는다! – RodsCode
은 표현식이 \t에 대한 산술 유형을 가져야한다고 말합니다. service = numDeposit * 0.03; amtDeposit + = amount의 경우; 그것은 정수형을 가지고 있어야한다고 말합니다. – RodsCode