простая программа, которая считает и суммирует цифры. Как я могу заставить это работать?

Поэтому я должен написать простую программу (которая зацикливается), в которой вы можете ввести целое число, и оно извергает число и сумму чисел. Поскольку я настолько отсталый, когда дело доходит до программирования, я просто собрал код в сети и попытался собрать его воедино. Я думаю, что сумма блока винты с п, но я не совсем уверен. В любом случае, я был бы очень признателен, если бы кто-то мог указать на ошибки и показать, как я могу заставить это работать.

#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';
}
}
}

-1

Решение

Поскольку используемые вами петли разрушительный (то есть они делают n к нулю до конца цикла) нужно объединить два цикла в один:

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

Другие решения

Вам нужно сохранить копию n перед первым циклом, чтобы использовать ее во втором цикле.

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;
}

Ваш второй цикл while(n) никогда не будет выполняться как значение n до тех пор стал бы 0.

0

Я думаю, что сумма блока винты с п, но я не совсем уверен,

ты угадаешь правильно: ты менять 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;
}
}
0
По вопросам рекламы [email protected]