所以我正在制定一个计算银行对账单(学校实验室)的程序,我正在制作的这个函数是用已经从账户中提取的支票以及存款来计算的。
这是我的主要(我必须使用)
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),它也不允许我。这样做的正确方法是什么?
(我还有其他功能来计算存款,但也有同样的问题)
答案 0 :(得分:1)
在使用值或为其赋值时,需要取消引用指针。 例如:
*service = (*numCheck)*0.06;