PDA

View Full Version : سوال: چاپ اعداد به صورت صعودی



behzad004
چهارشنبه 21 آبان 1393, 22:33 عصر
سلام دوستان ببخشید سوال خیلی خیلی مبتدی میپرسم ولی یکم گیج شدم میخوام ی الگوریتم بنویسم که سه عدد رو بگیره صعودی چاپ کنه اعداد رو
1-شروع
2-A,B,Cرا بخوان
3.اگر A>Bو A>Cانگاه
4.
بقیشو میشه کمک کنید؟

sa1378
چهارشنبه 21 آبان 1393, 23:26 عصر
#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;
}

behzad004
پنج شنبه 22 آبان 1393, 11:14 صبح
ببخشید ولی من الگوریتم میخواستم میشه ی بار بگی
اول aوbوcرو چاپ کن
بعدش چاپ کن cوaوb

؟

behnam404
شنبه 24 آبان 1393, 18:10 عصر
#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 رو میخونه و بعد از جابه جایی مقدار متغیر ها به صورت a<b<c مرتب میشه ؟

behzad004
پنج شنبه 29 آبان 1393, 18:16 عصر
دوستان ببخشید من الگوریتمشو میخوام
من یکمشو بلدم
اگر a>bانگاه
a=x
x=b
خیلی برام پچچیده شده اگه میشه ی نفر بهم توضیح بده ک اعداد از کوچک ب بزرگ چاپ بشه
الگوریتم میخوام برنامه ندین لطفا

sa1378
پنج شنبه 29 آبان 1393, 20:27 عصر
دوستان ببخشید من الگوریتمشو میخوام
من یکمشو بلدم
اگر a>bانگاه
a=x
x=b
خیلی برام پچچیده شده اگه میشه ی نفر بهم توضیح بده ک اعداد از کوچک ب بزرگ چاپ بشه
الگوریتم میخوام برنامه ندین لطفا
این عمل جابجایی هست
اگه a از b بزرگتر بود
اول بیا یه متغییر کمکی بگیر و a رو بریز توش
125898
بعد مقدار توی متغییر b رو بریز تو a
125899
بعد هم مقدار متغییر x رو بریز توی b
125900

حالا مقادیر a و b باهم عوض شدن
...
ولی اگه بنویسیم
a=b;
b=a;
اول مقدار b رو میریزه توی a و دیگه مقداری که توش a بوده رو نداریم

behzad004
پنج شنبه 29 آبان 1393, 20:42 عصر
ببینید ما برای سه تا عدد میخوایم بنویسیم یعنی با متغیر کمکی میشه چهارتا
اومدیم و aبزرگ تر از bبود ولی aکوچیک تر از cبود اون وقت چی؟

sa1378
پنج شنبه 29 آبان 1393, 20:58 عصر
ببینید ما برای سه تا عدد میخوایم بنویسیم یعنی با متغیر کمکی میشه چهارتا
اومدیم و aبزرگ تر از bبود ولی aکوچیک تر از cبود اون وقت چی؟

این چیزی که الان گفتم برای وقتی هست که بخوایم جای مقادیر دوتا متغییر رو عوض کنیم
برای 3 تا عدد a,b,c :
اول میایم a,b رو مقایسه میکنیم...اگه a>b عمل جابجایی رو روشون انجام میدیم
حالا میایم b,c رو مقایسه میکنیم...اگه b>c عمل جابجایی انجام میدیم
بعد هم a,c رو مقایسه میکنیم...اگه a>c عمل جابجایی رو انجام میدیم
حالا اعداد به صورت a<b<c مرتب هستن

behzad004
پنج شنبه 29 آبان 1393, 21:45 عصر
من نوشتم اگه میشه ببینید درسته یا ن
اگر 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 چاپ شود
همینه؟

sa1378
پنج شنبه 29 آبان 1393, 22:07 عصر
من نوشتم اگه میشه ببینید درسته یا ن
اگر 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 چاپ شود
همینه؟

آره درسته
ولی اگه میخوای یه کد خوب بنویسی با این الگوریتم بنویس(کپی شده از این تاپیک (http://barnamenevis.org/showthread.php?217818-%D9%85%D8%B1%D8%AA%D8%A8-%D8%B3%D8%A7%D8%B2%DB%8C-%DB%8C%DA%A9-%D8%B3%D8%B1%DB%8C-%D8%B9%D8%AF%D8%AF)):
شما فرظ کنید که یک لیست عدد داریند...


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 عوض میکنیم. و به انتها لیست رسیدیم.
حالا مرتب شده دنبالمون