# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C > سوال: چاپ مجموع ارقام عدد ورودی

## #Elahe#

این کدی که نوشتم تعداد ارقام عدد ورودی رو چاپ میکنه .

#include<iostream.h>
#include<conio.h>
int main()
{
   clrscr();

   int n,i=0,x;
   cout<<"Enter a number";
   cin>>n;
   while(n!=0)
   {
      n=n/10;
      i++;
   }
   cout<<i;
   cin>>x;
   return 0;
}حالا میخام مجموع این ارقام رو هم چاپ کنه .
البته راهش رو میدونم . ولی جای دقیق کد رو نمیدونم باید کجا بذارم .
اگه از دوستان کسی خواست کمک کنه ، لطف کنه همین کد خودم رو ویرایش کنه تو یه پست دیگه 
پیشاپیش تشکر میکنم .

----------


## cccccccccc

سلام
قبل از n=n/10 

s+=n%10

----------


## #Elahe#

#include<iostream.h>
#include<conio.h>
int main()
{
   clrscr();

   int n,i=0,x,sum=0;
   cout<<"Enter a number";
   cin>>n;
   while(n!=0)
   {
      n=n/10;
      sum+=n;
      i++;
   }
   cout<<i;
   cout<<sum;
   cin>>x;
   return 0;
}

ممنون دوست عزیز .
خودم اینجوری ویرایش کردم . ولی هنوز کامپایل نکردم !!

----------


## queen-mm

ببخشيد شما با اين كد مي خواين مجموع ارقام رو چاپ كنه؟ولي من احساس مي كنم كاملا اشتباهه.درستش اين نيست؟


int n,sum=0,m;
   cout<<"Enter a number";
   cin>>n;
   while(n)
   {
      m=n%10;
      sum+=m;
      n=n/10;
   }
   cout<<sum;

----------


## #Elahe#

بله دقیقا! حق با شماست
من اشتباهی به جای % ، / زدم .
چون واسه بیرون کشیدن رقمهای یک عدد باید اون عدد رو بر 10 تقسیم کنیم تا رقمها یکی یکی تو باقیمانده ظاهر شوند . واسه جمع زدن ارقام عد ورودی هم میونیم این باقیمانده ها رو باهم جمع بزنیم .
البته تو خود برنامه اینها رو ویرایش کرده ام !
ممنون

----------


## Salar Ashgi

برای محاسبه مجموع ارقام یک عدد ، از تابع بازگشتی نیز میتوان استفاده کرد :


int digit_sum(int n){
if(n<10)
return n;
else
return n%10+digit_sum(n/10);
}

----------


## #Elahe#

ولی آقا مدیر من هنوز خیلی راه دارم به اینها برسم . به توابع بازگشتی :دی

----------

