Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie i przekazywanie tablic.

Ostatnio zmodyfikowano 2012-01-13 15:36
Autor Wiadomość
damian4646
Temat założony przez niniejszego użytkownika
Sortowanie i przekazywanie tablic.
» 2012-01-13 12:54:21
Witam. Mam problem z zadaniem, który ma dwa zbiory, musi je posortować i wypisać. Problem polega na tym, że zbiory wypełnione losowo są takie same.
C/C++
#include <cmath>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>

using namespace std;

const int N = 10;
const int M = 10; // Liczebność zbioru A.

int ZbiorA( int A[ N ], int i )
{
    int j, p;
   
    cout << "Wersja przed sortowaniem i po: ;" << endl;
   
    // Najpierw wypełniamy tablicę d[] liczbami pseudolosowymi
    // a następnie wyświetlamy jej zawartość
   
    srand(( unsigned ) time( NULL ) );
   
    for( i = 0; i < N; i++ ) A[ i ] = rand() % 100;
   
    for( i = 0; i < N; i++ ) cout << setw( 4 ) << A[ i ];
   
    cout << endl;
   
    // Sortujemy
   
    for( j = N - 1; j > 0; j-- )
    {
        p = 1;
        for( i = 0; i < j; i++ )
        if( A[ i ] > A[ i + 1 ] )
        {
            swap( A[ i ], A[ i + 1 ] );
            p = 0;
        }
        if( p ) break;
       
    }
}
int ZbiorB( int B[ M ], int x )
{
    int j, p;
   
    cout << "Wersja przed sortowaniem i po: ;" << endl;
   
    // Najpierw wypełniamy tablicę d[] liczbami pseudolosowymi
    // a następnie wyświetlamy jej zawartość
   
    srand( time( NULL ) );
   
    for( x = 0; x < M; x++ ) B[ x ] = rand() % 100;
   
    for( x = 0; x < M; x++ ) cout << setw( 4 ) << B[ x ];
   
    cout << endl;
   
    // Sortujemy
   
    for( j = M - 1; j > 0; j-- )
    {
        p = 1;
        for( x = 0; x < j; x++ )
        if( B[ x ] > B[ x + 1 ] )
        {
            swap( B[ x ], B[ x + 1 ] );
            p = 0;
        }
        if( p ) break;
       
    }
}
int main()
{
    cout << "Zbior A: " << endl;
    int moja_tablica[ N ];
    ZbiorA( moja_tablica, N );
    int i = 0;
    do
    {
        cout << moja_tablica[ i ] << ", ";
        i++;
    } while( i < N );
   
   
    cout << "\nZbior B: " << endl;
    int moja_tablica1[ M ];
    ZbiorB( moja_tablica1, M );
    int j = 0;
    do
    {
        cout << moja_tablica1[ j ] << ", ";
        j++;
    } while( i < M );
   
    return 0;
}
P-48062
DejaVu
» 2012-01-13 15:36:14
C/C++
srand(( unsigned ) time( NULL ) );
Wywołaj raz na początku programu, a nie przy każdym wywołaniu funkcji.
P-48069
« 1 »
  Strona 1 z 1