变量在循环中显示,但不在循环中[C ++]

问题描述 投票:0回答:1

所以我试图打印“ n”的第一个偶数。不知何故,当我尝试打印数字时,它将使控制台上的数字保持无穷大,但是当我在循环内打印时,它会打印“ 66666666等”。这是我的代码:

#include <iostream>
using namespace std;
int main()
{
    int n,i,x=1;
    cin>>n;
    while(n){
        while(x){
            i=n%10;
            if(n%2==0){
                x--;
            }
            n/=10;
        }
    }
    cout<<i;
    return 0;
}
c++
1个回答
0
投票

问题是您的2个while循环:

while(n) {
    while(x) {
        //...
    }
}

x变为0时,您将进入外部循环。

但是,此外部循环根本不会修改n。因此,如果n永远不为0,它将连续坐在那里。

最简单的解决方法可能就是将它们组合成一个循环:

while(n && x) {
    //...
}

或者,您可以只使用1个循环,而根本不使用x

int main()
{
    int n,i;
    cin>>n;
    while(n){
        i=n%10;
        if(n%2==0){
            break;
        }
        n/=10;
    }
    cout<<i;
    return 0;
}

这也应该起作用。

© www.soinside.com 2019 - 2024. All rights reserved.