Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2011, 20:20   #1
Caged
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 33
По умолчанию Функция суммирования цифр в числе

Помогите найти ошибки, заранее спасибо.
Код:
#include <iostream>

using namespace std;

int main()
{
    
int  x, i;
 int Dsum (int a) {
  int c, x, r=0;
   c=a;  
   while (c < 10){
      x=(c-c%10)/10; 
      c=c%10, r+=c;
      c=x;
      }
   return r;   
 }
     
  cout << "insert a number" << endl;
  cin >> i;
  cout << "your result is "<< x= Dsum(i) << endl;  
  return 1;  
}

P.S. Предупреждаю, что я только начал изучать С, могу задавать не самые умные вопросы


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.10.2011 в 22:10.
Caged вне форума Ответить с цитированием
Старый 10.10.2011, 20:23   #2
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

описание функции должно находиться вне главной функции:
Код:
#include <iostream>

using namespace std;

int Dsum (int a) 
{
 int c, x, r=0;
 c=a; 
 while (c < 10)
 {
  x=(c-c%10)/10; 
  c=c%10, r+=c;
  c=x;
 }
 return r; 
}

 int main()
 {
  int x, i;
  cout << "insert a number" << endl;
  cin >> i;
  cout << "your result is "<< x= Dsum(i) << endl; 
  return 1; 
 }
_Alerter_ вне форума Ответить с цитированием
Старый 10.10.2011, 21:34   #3
Caged
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 33
По умолчанию Спасибки :)

большой косяк нашли, а мелких нету?

*я немножко подправил код самой функции:

Код:
int Dsum (int a) {
  int c, x, r=0;
   c=a;  
   while (c > 10){
      x=(c-c%10)/10; 
      c=c%10, r+=c;
      c=x;
      }
   return r+c;   
 }

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.10.2011 в 22:15.
Caged вне форума Ответить с цитированием
Старый 10.10.2011, 22:05   #4
Caged
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 33
По умолчанию

всё, отладил)
конкретно по этой теме вопросов нет
Caged вне форума Ответить с цитированием
Старый 10.10.2011, 22:16   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я, конечно, совсем не знаю C,
но разве операция / для целых чисел не возвращает в C всегда целое число?

разве такой простой код не будет работать? (проверьте, пожалуйста, а то мне даже проверить его негде ):
Код:
int Dsum (int a) {
  int c, r=0;
   c=a;  
   while (c > 0){
      r += c%10;
      c=c/10;
      }
   return r;   
 }
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество цифр в числе. Тошка Помощь студентам 2 13.03.2011 12:42
Дано натуральное число n. Определить, сколько парных цифр в числе n. Чему равна сумма нечетных его цифр? pahanzona Microsoft Office Excel 4 27.02.2011 15:46
Количество цифр в числе. Renge Помощь студентам 5 14.01.2011 13:09
Сложение цифр в числе Onekey Помощь студентам 6 23.10.2010 17:21
Количество цифр в числе Zelenyi Общие вопросы C/C++ 8 18.06.2010 03:24