我该如何继续此操作

How do i continue this while

本文关键字:继续 操作 何继续      更新时间:2023-10-16

我坚持此程序。程序要做的是从用户中获取整数,并显示剪切均匀数字后剩下的所有数字。

int main(){
    long n, minder=0;
    int cdonr, power=1;

    cout<<"Give a positive number "<<endl;
    cin>>n;
    while (n>0){
        cdonr=n%10;
        if(cdonr % 2 != 0){
            minder=minder+cdonr*power;
            power=power*10;
        }
        n=n/10;
    }
    cout<<"The number that is left after all even number " << endl;
    cout<<minder<<endl;
    cout<<"Give a positive nr "<<endl;
    cin>>n;
}

有人可以帮助我解决这个问题,因为在将第一个数字拆分后,它在第二个数字上没有给出任何响应。

感谢这个社区上的人,这是答案

#include<iostream>
using namespace std;
int main() {
    long n, minder = 0;
    int cdonr, power = 1;
    cout << "Give a positive number " << endl;
    cin >> n;
    while (n > 0) {
        while (n > 0) {
            cdonr = n % 10;
            if (cdonr % 2 != 0) {
                minder = minder + cdonr * power;
                power = power * 10;
            }
            //always zero so we need a nested while loop
            n = n / 10;
        }
        cout << "The number that is left after all even number " << endl;
        cout << minder << endl;
        //have to set values to default so they do not hold previous values
        minder = 0;
        cdonr = 0;
        power = 1;
        //we can reprompt user for a value
        //n will get set and it validates with the outer while loop
        //this allows it to run as many times as valid inputs
        cout << "Give a positive number " << endl;
        cin >> n;
    }
}

用户要求的另一个答案,在== 0, <= 0, and not a number

上退出
#include<iostream>
using namespace std;
int main() {
    long n, minder = 0;
    int cdonr, power = 1;
    cout << "Give a positive number " << endl;
    cin >> n;
    while (n > 0) {
        while (n > 0) {
            cdonr = n % 10;
            if (cdonr % 2 != 0) {
                minder = minder + cdonr * power;
                power = power * 10;
            }
            //always zero so we need a nested while loop
            n = n / 10;
        }
        cout << "The number that is left after all even number " << endl;
        cout << minder << endl;
        //have to set values to default so they do not hold previous values
        minder = 0;
        cdonr = 0;
        power = 1;
        //we can reprompt user for a value
        //n will get set and it validates with the outer while loop
        //this allows it to run as many times as valid inputs
        cout << "Give a positive number " << endl;
        cin >> n;
    }
}

尝试一下,它不是无限的,您可以通过调用函数来做多次。

#include<iostream>
using namespace std;
void function(long n, long minder, int cdonr, int power) {
    while (n > 0) {
        cdonr = n % 10;
        if (cdonr % 2 != 0) {
            minder = minder + cdonr * power;
            power = power * 10;
        }
        n = n / 10;
    }
    cout << "The number that is left after all even number " << endl;
    cout << minder << endl;
}
int main() {
    long n, minder = 0;
    int cdonr, power = 1;
    //can add a while loop here or just use a for
    // if you know how many times you want
    cout << "Give a positive number " << endl;
    cin >> n;
    if(n > 0){
    function(n, minder, cdonr, power);
    }
    //probably add an else here in case of == 0 or < 0
    // or just loop back if while
}

如果您真的想永远做某事,请循环循环。即,将您的"函数"放在循环中重复。(并考虑将其提取为实际功能)

int main() {
    using namespace std;
    while (true)
    {
        long n, minder = 0;
        int cdonr, power = 1;
        cout << "Give a positive number " << endl;
        cin >> n;
        while (n > 0) {
            cdonr = n % 10;
            if (cdonr % 2 != 0) {
                minder = minder + cdonr*power;
                power = power * 10;
            }
            n = n / 10;
        }
        cout << "The number that is left after all even number " << endl;
        cout << minder << endl;
    }
}