چطور میتونم با c برنامه ای بنویسم که عدد رو به دو قسمت اعشاری و صحیح تبدیل کنه؟وهمینطور تعداد رقم های صحیح رو بنویسه لطفا کمکم کنیدمن واقعا موندم
![]()
چطور میتونم با c برنامه ای بنویسم که عدد رو به دو قسمت اعشاری و صحیح تبدیل کنه؟وهمینطور تعداد رقم های صحیح رو بنویسه لطفا کمکم کنیدمن واقعا موندم
![]()
وقتی عدد اعشاری تونو تو یه double مثلا با نام dbl ذخیره کردین ، می تونین اونو تو یه متغیر int مثلا با نام integer بذارین . حالا این integer قسمت صحیح عدد شماست . بعد اگه integer رو از dbl کم کنین و نتیجه رو تو یه متغیر double بذارین قسمت اعشاری تون هم بدست میاد .
در مورد دومی هم تو یه حلقه عددتون رو بر 10 تقسیم کنین و یدونه counter رو افزایش بدین تا وقتی که عددتون صفر بشه .
این روش امکان پذیره ولی به هیچ عنوان یک روش کارامد و استاندارد نیست !وقتی عدد اعشاری تونو تو یه double مثلا با نام dbl ذخیره کردین ، می تونین اونو تو یه متغیر int مثلا با نام integer بذارین . حالا این integer قسمت صحیح عدد شماست . بعد اگه integer رو از dbl کم کنین و نتیجه رو تو یه متغیر double بذارین قسمت اعشاری تون هم بدست میاد .
شما میتونید از تابع استاندارد modf استفاده کنید که منحصرآ برای چنین کاری طراحی شده است. پیش نمونه این تابع رو میتونید در زیر مشاهده کنید:
این تابع یک عدد اعشاری را به دو قسمت صحیح و اعشاری تجزیه می کند، قسمت اعشار عدد num توسط تابع برگردانده میشود و قسمت صحیح ان در متغیر (اشاره گر) i قرار می گیرد. در ضمن این تابع در سرفایل math.h تعریف شده است.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مثال:
خروجی :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by bahareh_bus; 03-11-2009 at 22:23.
البته تا جاییکه من میدونم پارامتر دوم تابع modf باید از نوع اشاره گر به double یا long double باشه.
بله ، حق با شماست ولی به دلیل اینکه متغیر i بخش صحیح عدد رو برمی گردونه پس بدون از دست دادن هیچ دیتایی میتونیم از اشاره گرهای صحیح (int) استفاده کنیم.البته تا جاییکه من میدونم پارامتر دوم تابع modf باید از نوع اشاره گر به double یا long double باشه.
دلیل استفاده از نوع int هم روشنی بیشتر برنامه بود.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)