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

[c++]Porownywanie elementow struktur

Ostatnio zmodyfikowano 2014-05-10 19:39
Autor Wiadomość
Oddon
Temat założony przez niniejszego użytkownika
[c++]Porownywanie elementow struktur
» 2014-05-10 16:04:56
Witam, mam problem z porównywaniem elementów struktur o to kod:
C/C++
#include <iostream>
#include <fstream>
using namespace std;


//Naglowki funkcji
int * TabDynam( int n ); //Funkcja tworzy tablice dynamiczna o wymiarze n

//Struktury

struct tablice //struktura przechowujaca wczytane ciagi
{ int n; //dlugosc tablicy
    int * T = TabDynam( n ); //tablica z wczytanym ciagiem
    ~tablice() // dealokacja pamieci
    {
        delete[] T;
    }
};
tablice * TabDynamTab( int n ); //tworzy tablice struktury o nazwie tablice
int * przeciecia( tablice Tab[] ); //szukanie przeciec ciagow
int main()
{ int n;
    char nazwa[ 100 ];
    //wczytywanie danych z pliku
    printf( "Podaj nazwe pliku do wczytania:" );
    scanf( "%s", nazwa );
    FILE * pf = fopen( nazwa, "r" );
    fscanf( pf, "%d", & n ); //wczytanie ilosci ciagow
    tablice * op = TabDynamTab( n ); //wskaznik na strukture tablice oraz utworzenie ilosci struktur rownej ilosci ciagow
    for( int i = 0; i < n; i++ )
    {
        fscanf( pf, "%d", & op[ i ].n ); //wczytywanie ciagow
        for( int j = 0; j < op[ i ].n; j++ )
        {
            fscanf( pf, "%d", & op[ i ].T[ j ] );
           
        }
       
    }
   
   
   
    for( int i = 0; i < n; i++ )
    {
        for( int j = 0; j < op[ i ].n; j++ )
        {
           
           
            cout <<( op[ i ].T[ j ] );
        }
        cout << endl;
    }
    fclose( pf );
   
    cout << przeciecia( op )[ 0 ];
   
   
   
}
//FUNKCJE
int * TabDynam( int n )
{
    int * T = new int[ n ];
    return( T );
}


tablice * TabDynamTab( int n )
{
    tablice * T = new tablice[ n ];
    return( T );
}
int * przeciecia( tablice Tab[] )
{
    int i = 0, j = 0, z = 0, k = 0; //i=iterator 1 tablicy j= iterator2 tablicy,z=iterator tablicy przeciec, k rozmiart tej tablicy
    if( Tab[ 0 ].n >= Tab[ 1 ].n ) //szukanie rozmairu dla tablicy przeciec
    {
        k = Tab[ 0 ].n;
    }
    else
    {
        k = Tab[ 1 ].n;
    }
    cout << k;
    /*
           int *Tablica=TabDynam(k);//tablica na wartosci przeciec
           int *Tablica1=TabDynam(k);//tabica na ideksy i
           int *Tablica2=TabDynam(k);//tablica na ideksy j
      */
    int Tablica[ 10 ]; //tablica na wartosci przeciec
    int Tablica1[ 10 ]; //tabica na ideksy i
    int Tablica2[ 10 ]; //tablica na ideksy j
    for( int i = 0; i < 10; i++ )
    {
        Tablica[ i ] = 0;
        Tablica1[ i ] = 0;
        Tablica2[ i ] = 0;
    }
   
   
    do {
        if( Tab[ 0 ].T[ i ] > Tab[ 1 ].T[ j ] )
        {
            if( j <= sizeof( Tab[ 1 ].T ) / 4 )
            {
               
               
                j++;
                cout << "a2";
            }
        }
        else if( Tab[ 0 ].T[ i ] == Tab[ 1 ].T[ j ] )
        {
            Tablica[ z ] = Tab[ 0 ].T[ i ];
            Tablica1[ z ] = i;
            Tablica2[ z ] = j;
            z++;
           
            i++;
           
            j++;
            cout << "b3";
        }
       
        else if( Tab[ 0 ].T[ i ] < Tab[ 1 ].T[ j ] )
        {
            if( i <= sizeof( Tab[ 0 ].T ) / 4 )
            {
               
               
                i++;
                cout << "c1";
            }
        }
       
    } while(( i != sizeof( Tab[ 0 ].T ) / 4 ) &&( j != sizeof( Tab[ 1 ].T ) / 4 ) );
   
    cout << endl;
    cout << "to" << Tablica[ 0 ];
   
    return( Tablica );
}

Program nie zapisuje elementow do tablicy, a przy tablicach dynamicznych odrazu sie wyklada, Dziekuje za pomoc.
P-109631
Monika90
» 2014-05-10 16:42:18
C/C++
struct tablice //struktura przechowujaca wczytane ciagi
{ int n; //dlugosc tablicy
    int * T = TabDynam( n ); //tablica z wczytanym ciagiem
Jak myślisz, jaką wartość ma n gdy wywołane zostanie TabDynam(n)?
P-109633
Oddon
Temat założony przez niniejszego użytkownika
» 2014-05-10 16:48:57
n- wczytana z pliku, ktora informuje o ilosci ciagow
P-109634
Monika90
» 2014-05-10 16:56:25
n które jest zadeklarowane w main, to jest inne n niż to w strukturze tablice
P-109635
Oddon
Temat założony przez niniejszego użytkownika
» 2014-05-10 17:18:00
istnieje jakis sposob aby przypisac n z maina do n ze struktury?
P-109638
pekfos
» 2014-05-10 19:39:10
Konstruktor?
P-109644
« 1 »
  Strona 1 z 1