sort دو ارایه نامرتب از طریق اشاره گرها - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

sort دو ارایه نامرتب از طریق اشاره گرها

0 امتیاز

سلام دوستان 

من میخوام تابعی بنویسم که از طریق اشاره گرها دو ارایه نامرتب عددی را به عنوان پارامتر ورودی گرفته و به صورت صعودی در یک ارایه ادغام کند و برگرداند

نمیدونم کجای برنامه ی من اشتباهه

ممنون میشم کمکم کنین

#include<iostream>
using namespace std ;
void sort(int *a, int *b, int *c, int sizea , int sizeb)
{
	int temp;
	int t = sizea+sizeb;
	int i = 0;
	for(int j =0 ; j <sizea ; j++)
	{
		c[i] = a[j];
		i++;
	}
	i = sizea;
	for(int j =0 ; j<sizeb ; j++)
	{
		c[i] = b[j];
		i++;
	}

	for(int k = 0; k<t; k++)
	{
		for(int z=0 ; z<t ; z++)
		{
			if(c[k]>c[z])
			{
				temp = a[k];
				a[k] = a[z];
				a[z] = temp;
			}
		}

	}

	for(int i = 0 ; i<t ; i++)
	{
		cout << c[i]<<" ";
	}

}

int main ()
{
	int sizea;
	cout << "size arraye a:";
	cin >> sizea;
	int *a;
	a = new int [sizea];
	for(int i = 0 ; i< sizea ; i++)
	{
		cin >> a[i];
	}
	int sizeb;
	cout << "size arraye b:";
	cin >> sizeb;
	int *b;
	b = new int[sizeb];
	for(int j = 0; j<sizeb ; j++)
	{
		cin>> b[j];
	}
	int *c;
	c = new int[sizea+sizeb];
	sort(a,b,c,sizea,sizeb);
	return 0;
}

 

سوال شده دی 1, 1392  بوسیله ی Azar (امتیاز 628)   29 43 61
دوباره تگ گذاری شد بهمن 24, 1392 بوسیله ی BlueBlade

2 پاسخ

+1 امتیاز
 
بهترین پاسخ

اون 2 تا For ه مربوط به bubble sort  مشکل داشت

#include<iostream>
using namespace std ;
void sort(int *a, int *b, int *c, int sizea , int sizeb)
{
    int temp;
    int totalSize = sizea+sizeb;
    int i = 0;
    for(int j =0 ; j <sizea ; j++)
    {
        c[i] = a[j];
        i++;
    }
    i = sizea;
    for(int j =0 ; j<sizeb ; j++)
    {
        c[i] = b[j];
        i++;
    }

    for(int k = 0; k<totalSize; k++)
    {
        for(int z=0 ; z<totalSize; z++)
        {
            if(c[k]>c[z])
            {
                temp = c[k];
                c[k] = c[z];
                c[z] = temp;
            }
        }

    }



}

int main ()
{
    int sizea;
    cout << "size arraye a:";
    cin >> sizea;
    int *a;
    a = new int [sizea];
    for(int i = 0 ; i< sizea ; i++)
    {
        cin >> a[i];
    }
    int sizeb;
    cout << "size arraye b:";
    cin >> sizeb;
    int *b;
    b = new int[sizeb];
    for(int j = 0; j<sizeb ; j++)
    {
        cin>> b[j];
    }
    int *c;
    c = new int[sizea+sizeb];
    sort(a,b,c,sizea,sizeb);

    for(int i = 0 ; i<sizea+sizeb ; i++)
    {
        cout << c[i]<<" ";
    }
    return 0;
}

 

پاسخ داده شده دی 1, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد دی 3, 1392 بوسیله ی BlueBlade
0 امتیاز
         for ( int z=0 ; z<t ; z++)
به جای صفر باید بزارید k
پاسخ داده شده دی 1, 1392 بوسیله ی FastCode (امتیاز 602)   1 2 11
فرقی نمیکنه .. دوتاش درسته
...