# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C > سوال: چاپ اعداد به صورت صعودی

## behzad004

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

----------


## sa1378

#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

ببخشید ولی من الگوریتم میخواستم میشه ی بار بگی 
اول aوbوcرو چاپ کن 
بعدش چاپ کن cوaوb

؟

----------


## behnam404

> #include <iostream>
> using namespace std;
> 
> void swap1(int &a,int &b)
> {
>     int p=a;
>     a=b;
>     b=p;
> }
> ...


این سه عدد a,b,c رو میخونه و بعد از جابه جایی  مقدار متغیر ها به صورت a<b<c مرتب میشه ؟

----------


## behzad004

دوستان ببخشید من الگوریتمشو میخوام 
من یکمشو بلدم 
اگر a>bانگاه
a=x
x=b
خیلی برام پچچیده شده اگه میشه ی نفر بهم توضیح بده ک اعداد از کوچک ب بزرگ چاپ بشه 
الگوریتم میخوام برنامه ندین لطفا

----------


## sa1378

> دوستان ببخشید من الگوریتمشو میخوام 
> من یکمشو بلدم 
> اگر 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 بوده رو نداریم

----------


## behzad004

ببینید ما برای سه تا عدد میخوایم بنویسیم یعنی با متغیر کمکی میشه چهارتا
اومدیم و aبزرگ تر از bبود ولی aکوچیک تر از cبود اون وقت چی؟

----------


## sa1378

> ببینید ما برای سه تا عدد میخوایم بنویسیم یعنی با متغیر کمکی میشه چهارتا
> اومدیم و aبزرگ تر از bبود ولی aکوچیک تر از cبود اون وقت چی؟


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

----------


## behzad004

من نوشتم اگه میشه ببینید درسته یا ن 
اگر 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

> من نوشتم اگه میشه ببینید درسته یا ن 
> اگر a>bانگاه 
> Aرو بریز تو یx
> bرو بریز توی a
> xرو بریز توی b
> اگر b>cانگاه 
> bرو بریز تو x
> cرو بریزتویb
> xرو بریزتوی c
> ...


آره درسته
ولی اگه میخوای یه کد خوب بنویسی با این الگوریتم بنویس(کپی شده از این تاپیک):
شما فرظ کنید که یک لیست عدد داریند...

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

----------

