درخواست:مجموع تعداد رقم عدد ورودی

mhabat

Member
با سلام.یک تمرین بود که میگفت یک عدد6رقمی از ورودی بگیر و مجموع شش رقم روحساب کن.
اما من می خوام یک برنامه بنویسم که یک عددnرقمی بگیره و از رقم یکان تا آخرین رقم رو تک تک نمایش بده
(حالا اگه نگه این رقم دهگانه یا صد گان مشکلی نداره)بعد مجموع این عددnرقمی رو بدست بیاره.
چند قسمتش رو بلدم اما ادقام نمیشن.
این قسمت ماله اینه که تعداد رقم رو بدس میاره:
کد:
int count=0;
    cin>>x;
    while(x>=1)
    {
        count++;
        x/=10;
    }
    cout<<"Tedade argham: "<<count;
این قسمت هم ماله اینه که جمع تعداد رقم عدد گرفته شده رو نمایش میده.
اما برای هر عددی صدق نمیکنه(مشکل داره)
سورس:
کد:
long int x;
    int sum=0;
    cout<<"Enter a number:\n";
    cin>>x;
    while(x>=1)
    {
        sum+=x%10;
        x/=10;
    }
    cout<<"Sum of digits: "<<sum;
خیلی ممنون
 

the_king

مدیرکل انجمن
با سلام.یک تمرین بود که میگفت یک عدد6رقمی از ورودی بگیر و مجموع شش رقم روحساب کن.
اما من می خوام یک برنامه بنویسم که یک عددnرقمی بگیره و از رقم یکان تا آخرین رقم رو تک تک نمایش بده
(حالا اگه نگه این رقم دهگانه یا صد گان مشکلی نداره)بعد مجموع این عددnرقمی رو بدست بیاره.
چند قسمتش رو بلدم اما ادقام نمیشن.
توجه داشته باشید که long int هم تعداد ارقام اش محدوده و هر n رقمی داخلش جا نمیشه.
اگر مجموع ارقام رو برای اعداد بزرگ اشتباه حساب می کنه همین موضوعه وگرنه بخش دوم کد تون ایرادی نداره.
شیوه شمارش ارقام رو اندکی تغییر دهید چون شما تعداد ارقام عدد 0 رو صفر حساب می کنید :
کد:
    long int x;
    int count = 0;
    cin >> x;
    do
    {
        count++;
        x /= 10;
    } while (x > 0);
    cout << "Tedade argham: " << count;
    return 0;

داخل دو تا حلقه مقدار x رو آنقدر کم می کنید که به صفر برسه، به همین جهت اگر یکی از حلقه ها اجرا بشه
مقدار x صفر خواهد شد و دیگر حلقه دوم نمی تواند از مقدار اولیه x استفاده کند. بهتر است که مقدار اولیه عدد
را در متغیر دیگری ذخیره کنید تا برای حلقه دوم مقدار اولیه را از دست ندهید.

کد:
#include <iostream.h>

int main()
{
    long int n, x;
    int count = 0, sum = 0;
    cout << "Enter a number:\n";
    cin >> n;
    x = n;
    do
    {
        count++;
        x /= 10;
    } while (x > 0);
    x = n;
    while(x > 0)
    {
        sum += x % 10;
        x /= 10;
    }
    cout << "Tedade argham: " << count << endl;
    cout << "Sum of digits: " << sum << endl;
    return 0;
}
 

جدیدترین ارسال ها

بالا