【问题标题】:Expression Must Be Modifiable Value (C)表达式必须是可修改的值 (C)
【发布时间】:2017-08-27 05:55:59
【问题描述】:

快速提问:

#include <stdio.h>

int main(void) {
    int divisor, counter, binary, counter2;
    int digit0, digit1, digit2, digit3; 
    float decimal;

    printf("Decimal\t\tBinary\n");

    for (counter = 0; counter <= 15; counter++) {
        printf("%d\t\n", counter);   

        decimal = counter;

        for (counter2 = 0; counter2 <= 3; counter2++) {
            decimal % 2 == 1 ? digit0 = 1 : digit0 = 0);
        }
    }

    return 0;
}

在第二个 for 循环中,变量名“十进制”上的“表达式必须是可修改的值”不断出现错误。

为什么会这样,我该如何解决?

谢谢!

【问题讨论】:

  • decimal % 2 == 1 ? digit0 = 1 : digit0 = 0) --> digit0 = (decimal % 2 == 1 ? 1 : 0)
  • 嗯。 decimal 是 float 吗?是否有人在我不注意的情况下将模数作为允许的二进制运算添加到浮点数? fmod 有人吗?
  • @WhozCraig no...这里有多个问题
  • @M.M 是的,我想是的。

标签: c loops expression unmodifiable


【解决方案1】:

因为decimal是float,而%只适用于整数。如果你真的想用float进行mod,你可以使用函数float fmod(float x, float y),它计算x%y,你应该包括#include &lt;math.h&gt; 使用它。

【讨论】:

    猜你喜欢
    • 2019-06-28
    • 2021-09-17
    • 2014-12-15
    • 2014-12-20
    • 2015-09-19
    • 2016-05-09
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多