PDA

View Full Version : مبتدی: بزرگترین و کوچکترین n عدد بدون استفاده از آرایه



smemamian
شنبه 11 آذر 1391, 13:37 عصر
سلام

بزرگترین و کوچکترین n عدد بدون استفاده از آرایه از چه روشی میشه حل کرد ؟‌:متفکر:

یه حلقه و دستور if میشه ؟

مثلا در هر بار حلقه عدد جدید رو بگیره و با عدد قبلیش مقایسه کنه به نظرتون روش درسته ؟

مسعود اقدسی فام
شنبه 11 آذر 1391, 16:56 عصر
آره. اگه نگه داشتن اعداد مهم نیستن با یه if ساده مساله حل می‌شه. هر عددی که می‌گیری با min و max قبلی مقایسه کن. فقط اینکه اگه محدودیتی ندارن اعداد (از لحاظ بازه) اولین عددی رو که دریافت می‌کنی همن min و هم max در نظر بگیر. ولی اگه بازه دارن (مثلا نمره هستن) با مقدار دهی اولیه (مثلا max = 0 و min = 20) همه چیز حل می‌شه.

smemamian
شنبه 11 آذر 1391, 18:29 عصر
اومدم اولین نمره رو مبنا در نظر گرفتم , یعنی قبل از اینکه وارد حلقه بشم یه نمره از کاربر درخواست کردم .
مشکل از کجاست ؟ :متفکر:


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int icount,inumber1, inumber2 ,imin , imax, i ;
cout << "Number of students: " << endl ;
cin >>icount ;

cout << "enter number1:" <<endl ;
cin >> inumber1 ;
for (i=2 ; i<=icount ; i++)
{
cout << "enter number" << i << ":" << endl ;
cin >> inumber2 ;
if (inumber1 < inumber2)
imin = inumber1;
else
imax = inumber1;
cout << "Max :"<<imax << "\t" <<" Min :" << imin << endl ;
}

system("PAUSE");
return EXIT_SUCCESS;
}

مسعود اقدسی فام
شنبه 11 آذر 1391, 19:42 عصر
شما یه if‌ گذاشتی که اگه num1 کوچکتر از num2 هستش اینو داخل imin بذار وگرنه داخل imax بذار. خب این num2 پس کی حق حضور داره؟ کی می‌تونه جای num1 رو بگیره؟ همش داری مقدار num1 رو به min و max می‌ریزی.
اون بیرون تا num1 رو گرفتی هم min و هم max رو برابر اون بذار. بعد داخل حلقه num2 رو با min و max به صورت جداگانه ( و نه if و else) مقایسه کن و در صورت نیاز باهاشون عوض کن. طبیعتا با جفتش همزمان عوض نمی‌شه. اما else یعنی اگه این نشد اون بشه. همیشه مین نبودن معنی ماکس بودن رو نداره. باید دوباره چک بشه. حالا با if یا else if

در ضمن نتیجه بیرون حلقه چاپ بشه.