我对如何进行计算感到困惑,但是当我在一张纸上尝试时,我发现我想继续将剩余部分从左到右分成数组中的下一个值。
这是我的功能:
void getChange(int paid, int cost) {
int r, k, s, cntr, c = 1, value[8], money[8] = {200, 100, 50, 20, 10, 5, 2, 1};
r = paid - cost;
value[0] = r / money[0];
k = r % money[0];
for (money[c], cntr = 1; cntr < 8; c++, cntr++) {
if (k !=0){
value[c] = k / money[c];
k = value[c] % money[c];
} else{
value[c] = 0;
k = r / money[c + 1];
}
}
int i, j;
for (i = 0; i < 8; i++) {
printf("%i \t", money[i]);
}
printf("\n \n");
for (j = 0; j < 8; j++) {
printf("%i \t ", value[j]);
}
}
答案 0 :(得分:1)
k = value[c] % money[c];
我认为你的意思是k = k % money[c];
。 else子句也没用。在k == 0
时,循环应该会中断。