-1

だから私はあなたがintを入力することができそしてそれが数の数と数の合計を吐き出すことができる(ループする)簡単なプログラムを書かなければならない。私はプログラミングに関してはとても遅いので、オンラインでコードを清掃し、それをつなぎ合わせようとしました。合計ブロックはnでねじ込まれていると思いますが、よくわかりません。とにかく、誰かが間違いを指摘して、どうすればそれを機能させることができるかを教えていただければ幸いです。

#include <iostream>
using namespace std;

int main()
{
    while(1)
    {
        int i,p,n,sum=0;  //sum block
        cout<<"enter an int: ";
        cin>>n;

        {
            while(n!=0)
            {
                p=n % 10;
                sum+=p;
                n=n/10;
            }
            cout<<"int digit sum: "<<sum <<endl;
        }
        {
            int count = 0;
            while(n)
            {
                n /= 10;
                ++count;
            }
            cout <<"number of digits: " << count << '\n';
        }
    }
}
4

4 に答える 4

3

使用しているループは破壊的であるため(つまりn、ループの終わりまでにゼロになる)、2つのループを1つに結合する必要があります。

int sum=0, count=0;
while(n!=0)
{
    count++;
    sum += n%10;
    n /= 10;
}
于 2012-09-30T21:41:23.857 に答える
0

2番目のループで使用するには、最初のループの前にnのコピーを保存する必要があります。

于 2012-09-30T21:34:37.293 に答える
0

数字の合計を取得しようとしている場合は、このコードを使用してください。数の桁の。

#include <iostream>
using namespace std;

int main()
{

    int i, p, n, sum=0, count = 0;  //sum block
    cout<<"enter an int: ";
    cin>>n;

    while(n!=0)
    {
        p=n % 10;
        sum+=p;
        count++;
        n=n/10;
    }

    cout<<"int digit sum: "<<sum<<endl;
    cout<<"count of digits: "<<count<<endl;
 }

それまでの値は0になるため、 2番目のwhileループwhile(n)は実行されません。n

于 2012-09-30T21:41:48.817 に答える
0

合計ブロックネジはnであると思いますが、よくわかりません

あなたは正しいと思います:あなたはその最初のネストされたループの中で変化します。 nがゼロになるまでそのループを終了しませんn...だから今はゼロです!

参考までに、明示的なコピーを保持する必要がないように、おそらくこのように構成します...

#include <iostream>
using namespace std;

int sum_of_digits(int n);
int num_of_digits(int n);

int main()
{
    while(1)
    {
        cout << "enter an int: ";
        int n;
        cin >> n;

        cout << "sum of digits: " << sum_of_digits(n) << endl;
        cout << "num of digits: " << num_of_digits(n) << endl;
    }
}

int sum_of_digits(int n)
{
    int sum = 0;
    while(n)
    {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}

int num_of_digits(int n)
{
    int count = 0;
    while(n)
    {
        ++count;
        n /= 10;
    }
}
于 2012-09-30T21:51:15.000 に答える