Sortowanie przekątnej w tabeli dwuwymiarowej
Ostatnio zmodyfikowano 2015-03-18 21:37
Anim Temat założony przez niniejszego użytkownika |
Sortowanie przekątnej w tabeli dwuwymiarowej » 2015-03-18 20:03:47 Po raz drugi dzisiaj proszę Was o pomoc :) Tym razem mam zadanie, w którym mam stworzyć tablicę 10x10 , i wypełnić ją losowymi danymi. Następnie mam ją wypisać na ekran -> do tego momentu jest w porządku :) Na koniec mam posortować przekątną tablicy niemalejąco. I tutaj mam coś źle... Do pewnego momentu druga tablica jest z posortowanymi wartościami, natomiast w pewnym momencie coś się wysypuje. Oto kod. Co jest nie tak ? Najprawdopodobniej w funkcji "void sort()"... #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> #include <cstdio>
using namespace std;
void dane( int A[][ 10 ], int n ); void pisz_tab( int A[][ 10 ], int n ); void sort( int A[][ 10 ], int n );
int main() { srand( time( NULL ) ); int tablica[ 10 ][ 10 ]; dane( tablica, 10 ); pisz_tab( tablica, 10 ); sort( tablica, 10 ); printf( "\n" ); pisz_tab( tablica, 10 ); getch(); return 0; }
void dane( int A[][ 10 ], int n ) { int a, b; int i, j; printf( "Wypisujemy tabele. Prosze podaj przedzial, z ktorego zostanie wylosowana 100 elementowa tablica \n" ); printf( "Dolny przedzial, a = " ); cin >> a; printf( "\nGorny przedzial, b = " ); cin >> b; for( j = 1; j <= n; j++ ) { for( i = 1; i <= n; i++ ) { A[ j ][ i ] =( rand() %( b - a + 1 ) ) + a; } } }
void pisz_tab( int A[][ 10 ], int n ) { printf( "Tablica: \n" ); int i, j; for( j = 1; j <= n; j++ ) { for( i = 1; i <= n; i++ ) { if( A[ j ][ i ] < 100 && A[ j ][ i ] >= 10 ) { printf( " " ); } else { printf( " " ); } printf( "%d", A[ j ][ i ] ); if( i == 10 ) { printf( "\n" ); } } } }
void sort( int A[][ 10 ], int n ) { int i, j, temp; for( j = 1; j <= n; j++ ) { for( i = 0; i < n - j; i++ ) { if( A[ j ][ i ] > A[ j + 1 ][ i + 1 ] ) { temp = A[ j ][ i ]; A[ j ][ i ] = A[ j + 1 ][ i + 1 ]; A[ j + 1 ][ i + 1 ] = temp; } } } }
Proszę o pomoc :) |
|
pekfos |
» 2015-03-18 20:11:09 Jak masz posortować przekątną, to tablicy używaj jak jednowymiarowej. tab[i][i]. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2015-03-18 21:37:35 Poradziłem sobie :) Dodałem dodatkową pętlę for usuwającą kolumny po każdym sortowaniu :) |
|
« 1 » |