PDA

نسخه کامل مشاهده نسخه کامل : در خواست برنامه ای که 3 عدد از ورودی بگیره و از کوچیک به بزرگ چاپ کنه



nvb007
22-11-2009, 19:43
در خواست برنامه ای که 3 عدد از ورودی بگیره و از کوچیک به بزرگ چاپ کنه

ممنون میشم یکی کمکم کنه
واگه حس و حال داشتید یه مقدار کمی در مورد الگوریتم این برنامه و خود این برنامه هم یه توضیحی بدید ممنون میشم

Honradez
22-11-2009, 20:13
سلام.

من به شما الگوريتم مرتب‌سازي حبابي ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2 %DB%8C_%D8%AD%D8%A8%D8%A7%D8%A8%DB%8C) (Bubble Sort) رو پيشنهاد ميکنم:

اعدادتان را در قالب يک آرايه فرض کنيد. مرتب‌سازي انتخابي مياد و عدد اول از سمت چپو با عدد دوم از همين سمت مقايسه ميکنه. اگر بزرگتر بود، جاي اين دو عدد رو باهم عوض مي‌کنه و مياد سراغ مقايسه بين اعداد دوم و سوم. اگر هم بزرگتر نبود، بازهم مياد سراغ مقاسيه بين دوم و سوم، ولي اينبار ديگه جابجايي رو انجام نميده. وقتي اين روند به آخر برسه، اعداد آرايۀ شما از چپ به راست، از بزرگتر به کوچکتر مرتب شده‌اند.

الگوريتمهاي ديگه‌اي ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2 %DB%8C) هم وجود دارند مثل مرتب‌سازي انتخابي ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2 %DB%8C_%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8%DB%8C) (Selection Sort) و مرتب‌سازي سريع ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] 2%DB%8C_%D8%B3%D8%B1%DB%8C%D8%B9) (Quick Sort) که اگر خواستيد ميتوانيد در گوگل جستجويشان کنيد.

تندرست باشيد. :46:

p d
23-11-2009, 13:22
تقريبا 40% اين سوال هايي كه مطرح ميشن توي كتاب" برنامه نويسي به زبان c " تاليف مهندس جعفر نژاد قومي هستن از جمله اين سوال. عين اين سوال در صفحه 115 كتاب هست.
گرچه اكثرا كتب اورجينال رو پيشنهاد ميكنن ولي در كل كتاب بدي نيست!!!

nvb007
23-11-2009, 15:36
سلام.

من به شما الگوريتم مرتب‌سازي حبابي ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Fwiki%2F%25D8%25A7%25D9%2584%25DA%25AF%25D9%2588%2 5D8%25B1%25DB%258C%25D8%25AA%25D9%2585_%25D9%2585% 25D8%25B1%25D8%25AA%25D8%25A8%25E2%2580%258C%25D8% 25B3%25D8%25A7%25D8%25B2%25DB%258C_%25D8%25AD%25D8 %25A8%25D8%25A7%25D8%25A8%25DB%258C) (Bubble Sort) رو پيشنهاد ميکنم:

اعدادتان را در قالب يک آرايه فرض کنيد. مرتب‌سازي انتخابي مياد و عدد اول از سمت چپو با عدد دوم از همين سمت مقايسه ميکنه. اگر بزرگتر بود، جاي اين دو عدد رو باهم عوض مي‌کنه و مياد سراغ مقايسه بين اعداد دوم و سوم. اگر هم بزرگتر نبود، بازهم مياد سراغ مقاسيه بين دوم و سوم، ولي اينبار ديگه جابجايي رو انجام نميده. وقتي اين روند به آخر برسه، اعداد آرايۀ شما از چپ به راست، از بزرگتر به کوچکتر مرتب شده‌اند.

الگوريتمهاي ديگه‌اي ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Fwiki%2F%25D8%25A7%25D9%2584%25DA%25AF%25D9%2588%2 5D8%25B1%25DB%258C%25D8%25AA%25D9%2585_%25D9%2585% 25D8%25B1%25D8%25AA%25D8%25A8%25E2%2580%258C%25D8% 25B3%25D8%25A7%25D8%25B2%25DB%258C) هم وجود دارند مثل مرتب‌سازي انتخابي ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Fwiki%2F%25D8%25A7%25D9%2584%25DA%25AF%25D9%2588%2 5D8%25B1%25DB%258C%25D8%25AA%25D9%2585_%25D9%2585% 25D8%25B1%25D8%25AA%25D8%25A8%25E2%2580%258C%25D8% 25B3%25D8%25A7%25D8%25B2%25DB%258C_%D8%A7%D9%86%D8 %AA%D8%AE%D8%A7%D8%A8%DB%8C) (Selection Sort) و مرتب‌سازي سريع ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Fwiki%2F%25D9%2585%25D8%25B1%25D8%25AA%25D8%25A8%2 5E2%2580%258C%25D8%25B3%25D8%25A7%25D8%25B2%25DB%2 58C_%25D8%25B3%25D8%25B1%25DB%258C%25D8%25B9) (Quick Sort) که اگر خواستيد ميتوانيد در گوگل جستجويشان کنيد.

تندرست باشيد. :46:


راستش ، من طبق درسمون ، که الان تا if , else رسیدیم ، این برنامه رو انجام بدم

میخوام بدونم ، چطور باید انجامش بدم
چیزی که توی ذهن منه ، خیلی به نظرم طولانی میشه

A , B ,C رو از ورودی بگیره ، A رو با B و C مقایسه کنه ، اگه کوچیکتر بود بندازه توی A1 بعد بیاد B رو مقایسه کنه ببینه بین A و C هست یا نه ، و ....

من خودم که دارم اینا رو می گم ، قاطی کردم .

راه بهتر و کوتاه تری با استفاده از شرط و انتخاب وجود نداره ؟

p d
23-11-2009, 16:03
فقط با if o else ؟
شما بايد max o min رو پيدا كنيد و عدد ديگه ميشه بين max o min.