PDA

View Full Version : مشکل در جمع ارقام عدد ورودی



shahab.es
جمعه 13 آذر 1394, 17:11 عصر
سلام و خسته نباشید خدمت دوستان
من میخوام یه عدد رو از صفحه کلید بگیرم و مجموع ارقامش رو بزنم
این کد رو پیدا کردم از اینترنت
#include <iostream>

using namespace std;


int main()
{
int num;
int sum = 0;


cout << " Enter a number : ";
cin >> num;


while ( num > 0 ) {
sum += num % 10;
num /= 10;
}


cout << "Sum = " << sum;


return 0;

}

این یه مشکل داره
اگه عدد 10 رقم و بیشتر باشه، مجموع رو میزنه 0
یکی اینکه کمک کنید اگه میشه که این موردو حل کنم
دو اینکه اگه مقدوره یه توضیح در مورد نحوه کار کد بدید
خیلی خیلی ممنونم ازتون

zero_ox
جمعه 13 آذر 1394, 19:17 عصر
ازنوع long یا longlong استفاده کن . این صفحه رو هم ببین .
http://www.cplusplus.com/doc/tutorial/variables/

عملگر % و / همه می تونی بایه دستور cout ببنی کارش رو البته تو نرم افزار هم می تونی اینکاررو انجام بدی .


#include <iostream>

using namespace std;


int main()
{
long long int num;
long long int sum = 0;


cout << " Enter a number : ";
cin >> num;
cout<<num<<endl;

while ( num > 0 ) {
sum += num % 10;
cout<<"num%10 : " <<num%10<<"\t\t";
//num /= 10;
cout<<"num/=10 : "<<(num/=10)<<endl;
}

shahab.es
جمعه 13 آذر 1394, 19:32 عصر
ممنونم دوستم
با نوع long long و همینطور long تست کردم
اما نتیجه ای نگرفتم
مثه قبل
با دیتابی ها اشنایی دارم تا حدی
قبل تاپیک زدن هم بررسی کرده بودم
ممکنه مربوطه به
sum += num % 10;
num /= 10;
خطوط باشه؟

شاید بیشتر از 10 رقم جواب نده
چون ده تا 1 هم که زدم، باز نتیجه شد 0
بسیار ممنونم برای پاسختون




-------------------------
خیلی خیلی ممنونم
به درستی کار کرد
یه درکی هم نسبت به کدها پیدا کردم
در اصل کد تقسیم برای فهمیدن تعداد ارقام باقی مانه اس و کد باقیمانده تقسیم هم برای اضافه کردن عدد به رقم قبلی
ممنونم دوستم