Member 12914219 Ответов: 2

Я пишу код для добавления цифр exampe 153=(1+5+3)=9


я думаю, что этот код математически корректен ...но когда я запускаю этот код ...программа дает какой-то неудобный и все время один и тот же номер ...я запутываюсь, я уже несколько раз пробовал этот код ... Пожалуйста, скажите мне, что не так ..
ps: Я новичок

Что я уже пробовал:

#include <iostream>

использование пространства имен std;

тап_п()
{
int num, sum, a=0;
Кин&ГТ;&ГТ;кол-во;
while (num> 0)
{
a=число%10;

Сум=сум+а;
num=num/10;

}
соиь< в<сумма&ЛТ;<епси;
возвращает 0;
}

Philippe Mori

Что-то вроде этого будет работать : sum = num > 0 ? (num + 8) % 9 + 1 : 0;

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
я думаю, что этот код математически корректен
Если результат неверен, значит, программа где-то ошибается. Отладчик покажет вам, что на самом деле делает ваша программа.

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
15

Jochen Arndt

Эта строка объявляет переменные num, sum, и a и инициализирует a с нулем, но значение num и sum не определено.

int num,sum,a=0;

Пока num и a присваиваются позже по коду, нет никакого значения, присвоенного sum но используется фактическое значение.

Поэтому вы должны изменить свой код на (разбитый здесь на несколько строк):
int num = 0;
int sum = 0;
int a = 0;