مشاهده نسخه کامل
: یافتن بزرگترین عدد
سلام
برنامه ای بنویسید که 10 عدد نا مساوی را دریافت کند و بزرگترین عدد به همراه مکان اون رو مشخص کند(بدون استفاده از آرایه ها و توابع)(فقط با حلقه ها و شرط و این حرفا!)
ممنون
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته من با 5 تا نوشتم تا تستش راحت باشه!:31:
میشه در موردش یکم بیشتر توضیح بدی!؟(trace کن)
مثلا in چیه؟ یا مثلا چرا a>max
اگه میشه برنامه رو با printf و scanf بنویس
a عددمونه.max عدد بزرگتر رو می ذاریم داخلش.in مکان عدد هستش.چون گفتی آرایه نباشه پس باید یه شمارشگر داشته باشیم که شماره ی اعداد رو بهمون نشون بده.و یه شمارشگر که مکان عدد بزرگتر رو نشون بده.از خود i که یه شمارشگر هست استفاده نکردم چون اگه مثلا عدد بزرگترمون توی مکان سوم باشه و max رو اون عدد قرار بده وقتی از حلقه خارج شد مکان عدد رو مقدار نهایی i یعنی 10 رو چاپ خواهد کرد.و اینها رو بیرون حلقه تعریف کردم تا با هر بار اجرای حلقه دو باره ایجاد نشن.و max رو با صفر مقداردهی کردم واسه اینکه توی اولین اجرا عدد غیر صفر بزرگترین عدد باشه.اگه صفر نمی ذاشتم ممکن بود مقدار زباله که داخلش قرار می گیره بزرگتر از عددمون باشه واین مشکل ایجاد می کنه.
من برای این اعداد این روtrace می کنم:10،12،3،5،7
پس اول یه حلقه داریم که کنترل تعداد اعداد رو انجام می ده.تا بیشتر از 5 تا وارد نشه:
مرحله ی اول:i=1:عدد 10 رو وارد می کنیم.شرط if بررسی می شه.چون از قبل max رو با صفر مقدار دهی کردیم پس چون 10>0 (a>max)پس max رو 10 می ذاره .وin رو برابر i یعنی 1 قرار می ده.
مرحله ی دوم:i=2:عدد 12 رو می گیره.شرط if بررسی می شه.چون max برابر 10 شده پس12>10 (یعنیa>max) پس max رو می ذاره 12 و in می ذاره 2 .
مرحله ی سوم:i=3: عدد 3 رو می گیره.شرط if بررسی می شه.چون max برابر با 12 شده بود پس3<12(یعنیmax>a)پس شرط if درست نیست و وارد حلقه نمی شه.
و اینطور ادامه پیدا می کنه تا عددآخر رو هم بگیره و چون دیگه عددی بزرگتر نیست پس دیگه جابجایی انجام نمی شه و آخر سر همون 12 و 2 چاپ می شه.
می تونی یه پیغامهایی هم واسه وارد کردن اعداد بذاری.این دیگه به عهده ی خودت!
بی نهایت ممنون
خیلی لطف کردی
فقط یه سوال دیگه :
اگه max رو داخل حلقه قرار نمیدادیم هر لحظه همون 0 میشد دیگه ؟ درسته!؟(خیلی مبتدی بود ! نه؟)
مبتدی که نه!آره اگه بیرون حلقه صفر می دادی خوب همون صفر می موند و اگه مقایسه انجام نمی دادی همون عددی رو که می خوند رو max میذاشت.
MicrosoftH
11-05-2009, 23:10
ممنون خوب بود
sirYahya
07-11-2013, 23:22
با سلام
اینم الگوریتم به صورت کاملا درست و تست شده
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.