سلام دوستان ببخشید سوال خیلی خیلی مبتدی میپرسم ولی یکم گیج شدم میخوام ی الگوریتم بنویسم که سه عدد رو بگیره صعودی چاپ کنه اعداد رو
1-شروع
2-A,B,Cرا بخوان
3.اگر A>Bو A>Cانگاه
4.
بقیشو میشه کمک کنید؟
سلام دوستان ببخشید سوال خیلی خیلی مبتدی میپرسم ولی یکم گیج شدم میخوام ی الگوریتم بنویسم که سه عدد رو بگیره صعودی چاپ کنه اعداد رو
1-شروع
2-A,B,Cرا بخوان
3.اگر A>Bو A>Cانگاه
4.
بقیشو میشه کمک کنید؟
#include <iostream>
using namespace std;
void swap1(int &a,int &b)
{
int p=a;
a=b;
b=p;
}
int main ()
{
int a,b,c;
cin>>a>>b>>c;
if(a>c)
swap1(a,c);
if(b>c)
swap1(b,c);
if(a>b)
swap1(a,b);
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;
}
ببخشید ولی من الگوریتم میخواستم میشه ی بار بگی
اول aوbوcرو چاپ کن
بعدش چاپ کن cوaوb
؟
دوستان ببخشید من الگوریتمشو میخوام
من یکمشو بلدم
اگر a>bانگاه
a=x
x=b
خیلی برام پچچیده شده اگه میشه ی نفر بهم توضیح بده ک اعداد از کوچک ب بزرگ چاپ بشه
الگوریتم میخوام برنامه ندین لطفا
این عمل جابجایی هست
اگه a از b بزرگتر بود
اول بیا یه متغییر کمکی بگیر و a رو بریز توش
Untitled.png
بعد مقدار توی متغییر b رو بریز تو a
Untitled.png
بعد هم مقدار متغییر x رو بریز توی b
Untitled.png
حالا مقادیر a و b باهم عوض شدن
...
ولی اگه بنویسیم
a=b;
b=a;
اول مقدار b رو میریزه توی a و دیگه مقداری که توش a بوده رو نداریم
ببینید ما برای سه تا عدد میخوایم بنویسیم یعنی با متغیر کمکی میشه چهارتا
اومدیم و aبزرگ تر از bبود ولی aکوچیک تر از cبود اون وقت چی؟
این چیزی که الان گفتم برای وقتی هست که بخوایم جای مقادیر دوتا متغییر رو عوض کنیم
برای 3 تا عدد a,b,c :
اول میایم a,b رو مقایسه میکنیم...اگه a>b عمل جابجایی رو روشون انجام میدیم
حالا میایم b,c رو مقایسه میکنیم...اگه b>c عمل جابجایی انجام میدیم
بعد هم a,c رو مقایسه میکنیم...اگه a>c عمل جابجایی رو انجام میدیم
حالا اعداد به صورت a<b<c مرتب هستن
من نوشتم اگه میشه ببینید درسته یا ن
اگر a>bانگاه
Aرو بریز تو یx
bرو بریز توی a
xرو بریز توی b
اگر b>cانگاه
bرو بریز تو x
cرو بریزتویb
xرو بریزتوی c
اگر a>cانگاه
aرو بریز توی x
cرو بریز توی a
xرو بریز تویc
اخرش هم a,bc چاپ شود
همینه؟
آره درسته
ولی اگه میخوای یه کد خوب بنویسی با این الگوریتم بنویس(کپی شده از این تاپیک):
شما فرظ کنید که یک لیست عدد داریند...
5 - 4 - 7 - 1 - 23 - 6
ما در یک حلقه، اولین عدد لیست که 5 باشه رو انتخاب میکنیم، و میریم کوچیکترین عدد داخل لیست که از 5 هم کوچکتر هستند و در سمت راست عدد ما قرار دارند رو پیدا میکنیم، که در این جا، 1 است !، جای 1 و 5 رو باهم عوض میکنم ..
1 - 4 - 7 - 5 - 23 - 6
خوب، حالا میریم دویم عدد تو لیست، که 4 هست، سمت راست 4، هیچ عددی قرار ندارد که از 4 کوچک باشه،
پس عدد بعدی، 7 است. 5 کوچکترین عددی است که در سمت راست 7 قرار دارد، پس جایش را با 7 عوض میکنیم.
1 - 4 - 5- 7- 23 - 6
خوب دوباره عدد، بعد در لیست ما، 7 است، کمتیرین، عدد در سمت راست، 6 است و جای اونرو با 7 عوض میکنیم...
1 - 4 - 5- 6- 23 - 7
حالا عدد بعدی 23 است، که جای اون رو با 7 عوض میکنیم. و به انتها لیست رسیدیم.
حالا مرتب شده دنبالمون