【问题标题】:Assignment Operators in CC 中的赋值运算符
【发布时间】:2021-01-24 10:16:00
【问题描述】:

当我运行这段代码时,一切都很好,但是 a /= 10; 的值;输出是 10,10 是错误答案正确答案是 1。

// C program to demonstrate 
// working of Assignment operators 

#include <stdio.h> 

int main() 
{ 

    // Assigning value 10 to a 
    // using "=" operator 
    int a = 10; 
    printf("Value of a is %d\n", a); 

    // Assigning value by adding 10 to a 
    // using "+=" operator 
    a += 10; 
    printf("Value of a is %d\n", a); 

    // Assigning value by subtracting 10 from a 
    // using "-=" operator 
    a -= 10; 
    printf("Value of a is %d\n", a); 

    // Assigning value by multiplying 10 to a 
    // using "*=" operator 
    a *= 10; 
    printf("Value of a is %d\n", a); 

    // Assigning value by dividing 10 from a 
    // using "/=" operator 
    a /= 10; 
    printf("Value of a is %d\n", a); 

    return 0; 
}

但是当我运行这段代码时

#include <stdio.h> 

int main() 
{ 

    int a = 10; 
    
    a /= 10; 
    printf("Value of a is %d\n", a); 

    return 0; 
}


**the output is 1 but how please help me.**

【问题讨论】:

  • 为什么你认为应该是1printf 输出显示为除法前的值是什么?
  • 10/10 = 结果应该是什么?
  • 100/10=10。使用您最喜欢的调试器单步执行代码。

标签: c operators variable-assignment


【解决方案1】:

在你的代码中

// Assigning value by multiplying 10 to a 
// using "*=" operator 
a *= 10; 
printf("Value of a is %d\n", a); 

// Assigning value by dividing 10 from a 
// using "/=" operator 
a /= 10; 
printf("Value of a is %d\n", a); 

return 0;

对于最后一个运算返回 10,因为前一个运算将 a 乘以 10 并将其存储回 a,因此当您执行除法 a /=10 时,a100100/10,结果为 10。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2018-01-27
    • 2021-08-10
    • 2011-03-11
    • 2012-04-22
    • 2015-06-01
    相关资源
    最近更新 更多