我的代码输出总是为0

问题描述 投票:-1回答:3

我有一个问题陈述,它说明我在lr之间的除数的数量除以k,但是,我总是得到0作为我的输出。

int main() {
    int l, r, k, i;
    int count = 0;
    for (i = l; i < r; i++) {
        if (i % k = 0) {
            count++; 
        }
        else
            count = count + 0;
    }
    cout << count;
}
c++
3个回答
2
投票
if(i % k = 0)

这是UB,因为两个i都被初始化为不确定的值(l未初始化)并且k未初始化。即使你做@john所说的,它仍然是UB,你不能指望任何东西或者可以期待任何输出。


4
投票

你需要==而不是=

if(i % k == 0){

=是任务,==是平等测试


0
投票

如果条件改变===然后设置一些值到l, r and k他们是未指定的

试试这个!

int main() {
    int l=0, r=10, k=2, i;
    int count = 0;
    for (i = l; i < r; i++) {
        if (i % k == 0) {
            count++; 
        }
        else
            count = count + 0;
    }
    cout << count;
}
© www.soinside.com 2019 - 2024. All rights reserved.