0

嗨,我做了一个程序,整数除以 50 并显示该数字的模数,但编译器告诉我“值需要赋值的左操作数”对于“/”我不知道该怎么做。这是代码:

#include <stdio.h>

int main()
{
    int num;
    int i;
    int m;

    printf("enter number: ");
    scanf("%d", &num);

    num / 50 = i;
    num % 50 = m;

    printf("the division is: %d\n", i);
    printf("the remainder is: %d", m);

返回(0);}

4

4 回答 4

4

你的赋值语句是倒退的

利用:

i = num / 50;
m = num % 50;
于 2013-04-17T04:49:27.830 回答
3

这个:

num / 50 = i;  
num % 50 = m;  

在 C 中是严重非法的。你必须这样做:

i = num / 50;
m = num % 50;

为什么?因为 C 中的等号不像数学中那样工作。在数学中,等号确定两个表达式已经相等。它告诉你一些关于它们的新东西,但不会改变它们。

在 C 中,它明确用于更改变量,这是您在传统数学符号中无法做到的。它将右边的值复制到左边的变量地址中。这就是为什么有些人称它为“gets”而不是“equals”,例如“i gets num / 50”。当您以这种方式阅读时,它是有道理的。

于 2013-04-17T04:51:07.363 回答
0

在 C 中,虽然使用赋值运算符 LHS 应该是 L 值而不是 r 值(即它应该有与之关联的地址),因此使用 i = num / 50; m = 数量 % 50;

于 2013-04-17T09:03:25.103 回答
0

num / 50 = i;替换num % 50 = m;i = num / 50;m = num % 50;

于 2013-04-17T04:54:57.447 回答