【发布时间】:2021-01-15 20:14:53
【问题描述】:
所以我正在尝试为我的一个类编写代码,但由于某种原因,当我尝试编译它时,它根本不接受减法部分。有谁知道怎么回事?
代码如下:
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void) {
float value;
do {
value = get_float("enter value: ");
} while (value >= 0);
value * 100;
int quarter = 25;
int dime = 10;
int nickel = 5;
int penny = 1;
if (value >= quarter) {
while (value >= quarter) {
quarter - value;
}
int quarters = 0;
quarters++;
} else {
while (value >= dime) {
dime - value;
}
int dimes = 0;
dimes++;
} else {
while (value >= nickel) {
nickel - value;
}
int nickels = 0;
nickels++;
} else {
while (value >= penny) {
penny - value;
}
int pennies = 0;
pennies++;
}
printf ("%i pennies, %i nickels, %i dimes, %i quarters\n", pennies, nickels, dimes, quarters);
}
每当我尝试编译它时,它都会显示cash.c:25:20: error: expression result unused [-Werror,-Wunused-value] quarter - value; 或任何其他数学表达式。我一直无法编译它,所以如果这不起作用,我想提醒一下。谢谢各位。
【问题讨论】:
-
@trollergutz_playz 明白我的意思是写几行代码并在你继续之前让它们工作吗?你的第一个 do while 循环的逻辑是错误的(正如 Ted 所说)。
-
哦,没注意到。谢谢老兄。
-
好吧,谢谢大家的帮助,我想我会重新开始。再见。
-
BTW 不适用于
float而是整数,例如int cents = (int)round(value*100);请阅读Why not use Double or Float to represent currency? -
@TedLyngmo 强制转换专门用于使编译器静音(违背所有智慧),并且乘法和舍入保留了必要的精度。通过失去
float的不精确性,我们获得精度。