Tymek Temat założony przez niniejszego użytkownika |
Pomoc z programem » 2010-12-11 19:58:51 Treść zadania Dana jest tablica jednowymiarowa liczb rzeczywistych i pewien parametr a. Napisz program, który na podstawie tych danych utworzy 3 nowe tablice zawierające odpowiednio: · liczby większe od a, · mniejsze od a · równe a. Podaj także ich liczebności. Użyj funkcji #include <iostream> using namespace std;
int ile_wiekszych( float a, float[], int k ); int ile_mniejszych( float a, float[], int k ); int ile_rownych( float a, float[], int k ); void przepisz_wieksze( float a, float[], wieksze[], int k ); void przepisz_mniejsze( float a, float[], mniejsze[], int k ); void przepisz_rowne( float a, float[], rowne[], int k );
main() { int k; float a; cin >> k; cin >> a; float * T = new int[ k ]; for( int i = 0; i < k; i++ ) { cin >> T[ i ]; } int w = ile_wiekszych( a, T, k ); int m = ile_mniejszych( a, T, k ); int r = ile_rownych( a, T, k ); float * wieksze = new float[ wieksze ]; float * mniejsze = new float[ mmniejsze ]; float * rowne = new float[ rowne ]; int ile_wiekszych( float a, float[], int k ) { int l; for( int i, i < k, i++ ) { if( T[ i ] > a ) { l++; } } return l; } int ile_mniejszych( float a, float[], int k ) { int l; for( int i, i > k, i++ ) { if( T[ i ] > a ) { l++; } } return l; } int ile_rownych( float a, float[], int k ) { int l; for( int i, i == k, i++ ) { if( T[ i ] > a ) { l++; } } return l; } void przepisz_wieksze( float a, float[], wieksze[], int k ) { j = 0 for( int i = 0, i < k, i++ ) { if( T[ i ] > a ) { wieksze[ j ] == T[ i ]; j++ } } void przepisz_rowne( float a, float[], rowne[], int k ) { j = 0 for( int i = 0, i < k, i++ ) { if( T[ i ] == a ) { wieksze[ j ] == T[ i ]; j++ } } void przepisz_mniejsze( float a, float[], mniejsze[], int k ) { j = 0 for( int i = 0, i < k, i++ ) { if( T[ i ] < a ) { wieksze[ j ] == T[ i ]; j++ } } cout << "elemnenty tablicy" << endl; } system( "pause" ) }
prograam ma sporo błędów , może mi ktoś pomóc z tym? Nie wiem dlaczego ale już błędy są od początku że funkcja void przepisz_wieksze( float a, float[], wieksze[], int k ); void przepisz_mniejsze( float a, float[], mniejsze[], int k ); void przepisz_rowne( float a, float[], rowne[], int k );
nie jest zadeklarowana |
|
DejaVu |
» 2010-12-11 20:30:40 A to co to jest? , wieksze[],
|
|
Drraven |
» 2010-12-11 20:33:01 hym... źle zdefiniowana tablica - chyba ;p może chodziło mu o new[] ? |
|
Tymek Temat założony przez niniejszego użytkownika |
» 2010-12-11 20:33:58 Tablice dynamiczne z float * wieksze = new float[ wieksze ]; float * mniejsze = new float[ mniejsze ]; float * rowne = new float[ rowne ];
|
|
ison |
» 2010-12-11 20:42:17 @up genialne, deklarujesz tablicę dynamiczną o rozmiarze wskaźnika :) 1) Nie wiem dlaczego ale już błędy są od początku że funkcja
void przepisz_wieksze( float a, float[], wieksze[], int k ); void przepisz_mniejsze( float a, float[], mniejsze[], int k ); void przepisz_rowne( float a, float[], rowne[], int k );
|
raz deklarujesz zmienną bez nazwy a raz zmienną bez typu i się dziwisz że nie działa? 2)main powinien zwracać int 3)nie możesz deklarować funkcji w funkcji |
|
Tymek Temat założony przez niniejszego użytkownika |
» 2010-12-12 19:15:59 #include <iostream> using namespace std;
int ile_wiekszych( float a, float T[], int k ); int ile_mniejszych( float a, float T[], int k ); int ile_rownych( float a, float T[], int k ); void przepisz_wieksze( float a, float T[], float * wieksze[], int k ); void przepisz_mniejsze( float a, float T[], float * mniejsze[], int k ); void przepisz_rowne( float a, float T[], float * rowne[], int k ); void wyswietl_wieksze( float wieksze[], int k ); void wyswietl_mniejsze( float mniejsze[], int k ); void wyswietl_rowne( float rowne[], int k );
main() { int k; float a; cin >> k; float * T = new float[ k ]; for( int i = 0; i < k; i++ ) { cin >> T[ i ]; } cout << "elemnenty tablicy :"; cin >> a; int w = ile_wiekszych( a, T, k ); int m = ile_mniejszych( a, T, k ); int r = ile_rownych( a, T, k ); float * wieksze[ w ]; float * mniejsze[ m ]; float * rowne[ r ]; przepisz_wieksze( a, T, wieksze, k ); przepisz_rowne( a, T, rowne, k ); przepisz_mniejsze( a, T, mniejsze, k ); wyswietl_wieksze( * wieksze, w ); wyswietl_mniejsze( * mniejsze, m ); wyswietl_rowne( * rowne, r ); system( "pause" ); }
int ile_wiekszych( float a, float T[], int k ) { int l; for( int i; i < k; i++ ) { if( T[ i ] > a ) { l++; } } return l; }
int ile_mniejszych( float a, float T[], int k ) { int l; for( int i; i > k; i++ ) { if( T[ i ] > a ) { l++; } } return l; }
int ile_rownych( float a, float T[], int k ) { int l; for( int i = 0; i < k; i++ ) { if( T[ i ] == a ) { l++; } } return l; }
void przepisz_wieksze( float a, float T[], float * wieksze[], int k ) { int j = 0; for( int i = 0; i < k; i++ ) { if( T[ i ] > a ) { * wieksze[ j ] == T[ i ]; j++; } } }
void przepisz_rowne( float a, float T[], float * rowne[], int k ) { int j = 0; for( int i = 0; i < k; i++ ) { if( T[ i ] == a ) { * rowne[ j ] == T[ i ]; j++; } } }
void przepisz_mniejsze( float a, float T[], float * mniejsze[], int k ) { int j = 0; for( int i = 0; i < k; i++ ) { if( T[ i ] < a ) { * mniejsze[ j ] == T[ i ]; j++; } } }
void wyswietl_wieksze( float wieksze[], int k ) { for( int i = 0; i < k; i++ ) { cout << wieksze[ i ] << " "; } }
void wyswietl_mniejsze( float mniejsze[], int k ) { for( int i = 0; i < k; i++ ) { cout << mniejsze[ i ] << " "; } }
void wyswietl_rowne( float rowne[], int k ) { for( int i = 0; i < k; i++ ) { cout << rowne[ i ] << " "; } }
troche to poprawiłem ale nadal nie działa . coś jest nie tak z tymi wskaźnikami, |
|
« 1 » |