problem z tabl.wielowymiarowymi POMOCY!!!

0

Witam!
mam do napisania program(a właściwie miałem), w którym powinna znaleźć się dynamiczna alokacja tablic i po wprowadzeniu do niej jakiś wartości posortować wg pierwszej kolumny,ale przenosząc cały wiersz gdy zamieniało. na tablicy 2 wymiarowej działa. ale muszę zrobić tak, żeby niezaleźnie od tego, jaki będzie rozmiar tej tablicy, zawsze sortowało wg 1 kolumny a przenosiło całe wiersze.
podaje kod tego co do tej pory zmajstrowałem :) mam nadzieję, że ktoś mi pomoże.

#include <iostream.h>

void wczytaj(int rozm1, int rozm2, int **tab)
{

for(int i = 0; i<rozm1;i++)
for(int j = 0; j<rozm2;j++)

cin>>tab[i][j];

}

void sortuj(int rozm1, int rozm2, int **tab)
{

int flaga,x,y;

flaga=1;
while (flaga)
{
	flaga=0;
	for(int i=0;i<rozm1-1;i++)
		
	{
		for (int j=0;j<rozm2-1;j++)
		
			
		if (tab[i][j]>tab[i+1][j])
		{	
			x=tab[i+1][0];
			y=tab[i+1][1];
			tab[i+1][0]=tab[i][0];
			tab[i+1][1]=tab[i][1];
			tab[i][0]=x;
			tab[i][1]=y;
          
			flaga=1;
		}
	}
}

}
void wypisz(int rozm1, int rozm2, int **tab)
{
for(int i = 0; i<rozm1;i++)
{
for(int j=0;j<rozm2;j++)
cout << tab[i][j];
cout<<endl;
}

}

void main()
{

int rozm1,rozm2;

cout<<"Ile wierszy ma miec tabela? \n";
	cin>>rozm1;
cout<<"Ile kolumn ma miec tabela? \n";
	cin>>rozm2;

int **tab = new int *[rozm1];
for (int i=0;i<rozm1;i++)
	tab[i]=new int[rozm2];

wczytaj(rozm1,rozm2,tab);
cout<<"Nie posortowane: \n";
wypisz(rozm1,rozm2,tab);
sortuj(rozm1,rozm2,tab);
cout<<"\nPosortowane: \n";
wypisz(rozm1,rozm2,tab);
delete [] tab;

}</cpp>

0
void sortuj(int rozm1, int rozm2, int **tab)
{
    for(int i=1; i<rozm1; i++)
	{
		int j=i;

		int *temp=new int[rozm2];
		for(int m=0; m<rozm2; m++)
			temp[m]=tab[i][m];
		
		while((j>0) && (tab[j-1][0]>temp[0]))
		{
			for(m=0; m<rozm2; m++)
				tab[j][m]=tab[j-1][m];
			j--;
		}

		for(m=0; m<rozm2; m++)
			tab[j][m]=temp[m];
	} 
}
0

dziękuję. dokładnie o to mi chodziło. jeszcze raz dzięki

0

your welcome :d

1 użytkowników online, w tym zalogowanych: 0, gości: 1