مشاهده نسخه کامل
: چاپ اعداد در مبناي 16 در زبان سي
rouhallah
21-02-2007, 20:05
با سلام
من ميخوام تو زبان سي اعداد بر مبناي 16 رو تو صفحه نمايش چاپ كنم و اين برنامه رو نوشتم اما اين برنامه همش عدد 10 چاپ ميكنه
لطفاً كمكم كنيد
كد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من يه مشكل ديگه هم برام پيش اومده ممنون ميشم كمك كنيد
دارم يه برنامه مينويسم كه دو عدد ميگيره يكي به عنوان مقسوم و ديگري به عنوان مقسوم عليه
و اين برنامه بايد با اضافه كردن تدريجي مقسوم عليه دو عددي را كه از همه نزديك تر به هم هستند و ضربشان برابر مقسوم ميشود را پيدا ميكند
اما برنامه خوب كار نميكنه و دو عددي كه پيشنهاد ميده خيلي از هم فاصله دارند اگه ميشه اونو درستش كنيد
در ضمن اگه به شه راهنماييم كنيد تا حجم خطوطاش كمتر به شه
البته يك مشكلش هم همون چاپ شدن دستور printf آخره كه نتونستم درستش كنم چون نمي دونم چرا از else سوم به بعد كه در يك if استفاده ميكردم پيام ميداد جاي else درست نيست
در اين مورد هم كمك كنيد
با سپاس فروان از شما دوستان خوب
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
hamidreza_buddy
21-02-2007, 20:33
برای چاپ hex و oct (مبنای هشت) باید به ترتیب از %x و %o استفاده کرد.
دوم اینکه:خوب این چه کاره کردی پسر خوب!
خوب شما به جای اینکه برای یک Range متغییر a یه کد بنویسی اول c رو حساب کن و بعد فقط یک بار این کد رو بنویس:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اون طور که معلومه c رو می زای تعداد رقم ها + 3.
در ضمن & نه و &&.
یه بار دیگه بگو می خای چیکار کنی من متوجه نمی شم.
rouhallah
22-02-2007, 17:37
برای چاپ hex و oct (مبنای هشت) باید به ترتیب از %x و %o استفاده کرد.
دوم اینکه:خوب این چه کاره کردی پسر خوب!
خوب شما به جای اینکه برای یک Range متغییر a یه کد بنویسی اول c رو حساب کن و بعد فقط یک بار این کد رو بنویس:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اون طور که معلومه c رو می زای تعداد رقم ها + 3.
در ضمن & نه و &&.
یه بار دیگه بگو می خای چیکار کنی من متوجه نمی شم.
با سلام
احتمالاً سوال دوم رو متوجه نشديد همون كه در مورد تقسيم عدد بود
اصل سوال من دقيقاً اينه من در كل ميخوام يه عدد صحيح رو به ضرب دو عدد صحيح( البته دو عدد نزديك به هم در صورت وجود) تبديل كنم . به طوريكه اگه اين دو عدد به دست اومده رو دوباره در هم ضرب كنيم دوباره دقيقاً همون عدد اول بدست بيايد . براي اينكه بازم منظورم رو دقيق تر بگم يعني اگه عددي كه ما به برنامه ميديم و اون تبديلش ميكنه به ضرب دو عدد صحيح وقتي عدد رو بر يكي از دو عدد بدست آمده تقسيم كنيم باقيمانده حاصل صفر به شه
بازم خاطر نشان ميكنم كه دو عدد حاصل بايد تا اونجايي كه ممكن هست به نزديك باشند
يه مثال هم ميزنم تا خوبتر متوجه بشيد
مثلاً اگه عدد ورودي ما 120 باشه دو عدد حاصل كه خيلي به هم نزديك هستند و ضربشان 120 ميشه 10 و 12 خواهند بود ولي ميدانيم كه عدد هاي ديگه هم هستند كه ضربشان 120 ميشه اما تا حد ممكن نزديك نيستند . مثل 4 و 30 يا 2 و 60 يا 6 و 20 و غيره . ولي ما منظورمان فقط همان 10 و 12 خواهد بود و برنامه بايد بتواند به اين دو عدد برسد.
ميدونم يكم طولاني شد . ببخشيد ولي اميدوارم منظورم رو دقيق تر بيان كرده باشم
والسلام
hamidreza_buddy
22-02-2007, 19:54
خوب میشه یه کاری کرد.
مثلاً به ما a رو میدن.
اول جذر a رو بدست میاریم. b=sqrt a;
بعد با یه حلقه هر دفه i رو یکی زیاد می کنیم و هر وقت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید صفر شد اعداد رو چاپ می کنیم.
برای هر دو عدد حتماً این اتفاق می افته چون بالاخره به 1 می رسه و a%1 حتماً صفر می شه.
rouhallah
23-02-2007, 17:24
خوب میشه یه کاری کرد.
مثلاً به ما a رو میدن.
اول جذر a رو بدست میاریم. b=sqrt a;
بعد با یه حلقه هر دفه i رو یکی زیاد می کنیم و هر وقت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید صفر شد اعداد رو چاپ می کنیم.
برای هر دو عدد حتماً این اتفاق می افته چون بالاخره به 1 می رسه و a%1 حتماً صفر می شه.
با سلام
من هنگامي اين جواب شما رو ديدم كه برنامه مورد نظر رو درست كردم البته نه به صورت پيشنهادي شما
حال كد اين برنامه رو ميزارم و از شما خواهش ميكنم اون رو امتحان كنيد اگه با اعداد مختلفي كه شما ميدهيد
باز هم نتيجه درست بود به من اطلاع دهيد
باز هم براي يادآوري ميگم اين برنامه عددي رو ميگيره و نزديكترين دو عدد بهم رو كه نتيجه ضربشون عدد ورودي به شه رو چاپ ميكنه
مثلاً اگه عدد ورودي 120 باشه اين برنامه اعداد 12 و 10 رو چاپ ميكنه كه نزديكترين دو عدد ممكن به هم هستند كه
ضرب آنها در هم عدد 120 رو به ما ميده
فقط اين برنامه يه مشكل كوچيك داره و اون هم چاپ مقدار اوليه متغير b است . با اينكه دستور چاپ شدن رو دريافت نميكنه
شايد كامپايلر من اين طوري عمل ميكنه پس لطفاً اين مسئله رو هم چك كنيد
با تشكر
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
mohammad aghajani
03-05-2007, 02:27
سلام
اگه همین کد هارو تو سی شارپ هم بگین ما هم می تونیم استفاده کنیم چون من فقط سی شارپ گذروندم و زبانهای دیگرو نمی فهمم
ممنون میشم
farhamyari
23-06-2007, 23:22
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.