مرتب کردن اعداد در سی پلاس پلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مرتب کردن اعداد در سی پلاس پلاس

0 امتیاز
سلام دوستان عزیز من سه عداد رو از ورودی به حلقه forمیخونم حالا میخوام این سه عدد رو به صورت سعودی یعنی کوچک به بزرگ مرتب کنم

 

ممنون میشم راهنمایی کنید !
سوال شده اسفند 18, 1392  بوسیله ی Mr.Mohammad (امتیاز 189)   17 17 24
ویرایش شده اسفند 19, 1392 بوسیله ی BlueBlade

2 پاسخ

+1 امتیاز
 
بهترین پاسخ
#include<iostream>
using namespace std;
int main()
{
    int a[3];
    int size_=3;

    for(int i=0;i<size_;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<size_;i++)
    {
        for(int j=0;j<size_-1;j++)
        {
            if(a[j]>a[j+1])
            {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    for(int i=0;i<size_;i++)
    {
        cout<<a[i];
    }
}

لینک : مرتب سازی حبابی

جست و جو برای مرتب سازی

پاسخ داده شده اسفند 19, 1392 بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57
انتخاب شد اسفند 20, 1392 بوسیله ی BlueBlade
میشه بدون آرایه باشه ؟

 

اخه با آرایه بلدم
بله میشه 3 تا if میخواد.
نه بدون if هم شدنی هست در هر بار خوندن مثلا Aاز ورودی اونو با بعدی مقایسه کنیم
پیچیدگی برنامت زیاد نیست ...

راحت تر نمیشه سرت کرد؟
@mr.Mohammad:
این کاری که شما میگی این جا جواب میده ولی در کل این که موقع ورودی گرفتن، پردازش انجام بدیم، استاندارد نیست.
0 امتیاز
سلام، می‌توانید از روش مرتب‌سازی Selection Sort برای مرتب کردن اعداد استفاده کنید. این روش به این صورت است که در هر مرحله از آرایه، کوچکترین مقدار را پیدا کرده و در جایگاه مناسبی قرار می‌دهیم. 
 
برای مرتب کردن سه عدد به صورت صعودی، می‌توانید از کد زیر استفاده کنید:
 
#include <iostream>
using namespace std;

// تابع تعریف شده برای جابجایی دو مقدار
void swap(int& x, int& y) {
    int temp = x;
    x = y;
    y = temp;
}

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    // Selection sort برای مرتب کردن به صورت صعودی
    if (a > b) swap(a, b);
    if (a > c) swap(a, c);
    if (b > c) swap(b, c);

    cout << a << " " << b << " " << c << endl;

    // Selection sort برای مرتب کردن به صورت نزولی
    if (a < b) swap(a, b);
    if (a < c) swap(a, c);
    if (b < c) swap(b, c);

    cout << a << " " << b << " " << c << endl;

    return 0;
}

 

 
در این کد، عددهای ورودی a، b، c را می‌خوانیم. سپس با استفاده از روش Selection Sort، این سه عدد را به صورت صعودی مرتب می‌کنیم. برای این کار، در هر مرحله، کوچکترین مقدار را پیدا می‌کنیم و در جایگاه مناسبی قرار می‌دهیم. با استفاده از تابع `swap`، می‌توانیم دو مقدار را با یکدیگر جابجا کنیم. در نهایت، مقادیر مرتب شده را چاپ می‌کنیم.
 
برای مرتب کردن به صورت نزولی، می‌توانید ترتیب جایگاهی اعداد در روش Selection Sort را تغییر دهید. یعنی ابتدا بزرگترین مقدار را پیدا کرده و در جایگاه مناسبی قرار دهید، سپس دومین بزرگترین مقدار را پیدا کرده و در جایگاه مناسبی قرار دهید و در نهایت کوچکترین مقدار را در جایگاه مناسبی قرار دهید.
پاسخ داده شده تیر 3, 1402 بوسیله ی Lori3 (امتیاز 857)   11 34 104
...