2013-04-17 1 views
0

Привет Я создал программу, целое число которой делит число на 50 и показывает мод этого числа, но компилятор сообщает мне, что «значение требует левого операнда присвоения "за"/"Я не уверен, что делать. Вот код:c программа, чтобы разделить число и показать мод числа, не будет работать

#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); }

+0

Ваше заявление о назначении назад – tay10r

+4

Вам, вероятно, следует получить хорошую книгу начинающего C и пройти через нее. –

+0

lol,^даже если это звучит немного глупо, они очень помогают – tay10r

ответ

3

Это:

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

ли серьезно незаконна в C. Вы должны сделать это:

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

Почему? Поскольку знак равенства в C не работает так, как он делает в математике. В математике знак равенства устанавливает, что два выражения: уже равно. Он рассказывает вам что-то новое о них, но не меняет их.

В C он явно используется для изменения переменной, чего вы не можете сделать в традиционной математической нотации. Он копирует значение справа в адрес переменной слева. Вот почему некоторые люди называют это «получает» вместо «равно», как в «я получаю num/50». Это имеет смысл, когда вы читаете его таким образом.

+0

+1 отличное объяснение – tay10r

+0

Большое спасибо отличный ответ – 2013-04-17 05:02:54

4

ваше заявление присваивание назад

использование:

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

заменитьnum/50 = i; и num % 50 = m; с i = num/50; и m = num % 50;

+0

Спасибо вам, имеет смысл – 2013-04-17 05:03:41

0

В C, при использовании LHS оператора присваивания должно быть L-значение не г-значение (т.е. он должен иметь адрес, связанный с ним), следовательно, использовать я = num/50; m = num% 50;

 Смежные вопросы

  • Нет связанных вопросов^_^