Problem z tablicą.
Ostatnio zmodyfikowano 2017-11-11 20:45
dartpizza88 Temat założony przez niniejszego użytkownika |
Problem z tablicą. » 2017-11-11 12:05:35 Cześć Bawiłem się trochę z tablicami i ich uzupełnianiem przez użytkownika i napotkałem pewien problem, mianowicie przy wypisaniu elementów tablica zjada jeden wyraz i wstawia tam losową liczbę. Czy ktoś mógłby mi pomóc i wskazać jak sobie z tym poradzić? #include <iostream> using namespace std;
int main() { int rozmiar, i, a; cout << "Podaj rozmiar tablicy" << endl; cin >> rozmiar; int * tablica = new int[ rozmiar ]; for( i = 0; i < rozmiar; i++ ) { cout << "Podaj wartosc elementu" << endl; tablica[ i ] = a; cin >> a; } for( i = 0; i < rozmiar; i++ ) { cout << tablica[ i ] << ";"; } delete[] tablica; return 0; }
|
|
maly7 |
» 2017-11-11 13:49:22 tablica[ i ] = a; cin >> a; Zamień te dwie linijki. Najpierw musisz pobrac dane, później dopiero je zapisz. |
|
dartpizza88 Temat założony przez niniejszego użytkownika |
» 2017-11-11 17:11:04 Dziękuję, pomogło. |
|
dartpizza88 Temat założony przez niniejszego użytkownika |
» 2017-11-11 19:02:35 Czy mógłby ktoś zerknąć i ocenić czy sortowanie bąbelkowe jest zaimplementowane okej i czy nie popełniłem żadnego błędu kardynalnego? #include <iostream> using namespace std;
int main() { int rozmiar, i, a, zmiana, depo; cout << "Podaj rozmiar tablicy" << endl; cin >> rozmiar; int * tablica = new int[ rozmiar ]; for( i = 0; i < rozmiar; i++ ) { cout << "Podaj wartosc elementu" << endl; cin >> a; tablica[ i ] = a; } cout << "Tablica przed sortowaniem" << endl; for( i = 0; i < rozmiar; i++ ) { cout << tablica[ i ] << " "; } cout << endl; do { zmiana = 0; for( i = 0; i < rozmiar - 1; i++ ) { if( tablica[ i ] > tablica[ i + 1 ] ) { zmiana = zmiana + 1; depo = tablica[ i ]; tablica[ i ] = tablica[ i + 1 ]; tablica[ i + 1 ] = depo; } } } while( zmiana != 0 ); cout << endl; cout << "Tablica po sortowaniu" << endl; for( i = 0; i < rozmiar; i++ ) cout << tablica[ i ] << " "; delete[] tablica; return 0; }
Jeszcze przy okazji mam pytanie, jak zablokować użytkownikowi możliwość wpisania litery jako wielkość tablicy lub wartość? |
|
pekfos |
» 2017-11-11 19:05:39 |
|
dartpizza88 Temat założony przez niniejszego użytkownika |
» 2017-11-11 19:32:17 No okej, pozbyłem się możliwości użycia litery, poczytałem trochę ale nadal nie wiem jak zablokować użycie cyfry niecałkowitej. Wprowadziłem też drobne zmiany i pojawił się problem, wypisanie nie posegregowanej tablicy jest okej ale w wypadku drugiej ginie część po przecinku. Oto kod: #include <iostream> using namespace std;
int main() { int rozmiar, i, zmiana, depo; float a; cout << "Podaj rozmiar tablicy" << endl; cin >> rozmiar; float * tablica = new float[ rozmiar ]; if( cin.good() ) { for( i = 0; i < rozmiar; i++ ) { if( cin.good() ) { cout << "Podaj wartosc elementu" << endl; cin >> a; tablica[ i ] = a; } else { cout << "To nie jest cyfra"; return 0; } } cout << "Tablica przed sortowaniem" << endl; for( i = 0; i < rozmiar; i++ ) { cout << tablica[ i ] << " "; } cout << endl; do { zmiana = 0; for( i = 0; i < rozmiar - 1; i++ ) { if( tablica[ i ] > tablica[ i + 1 ] ) { zmiana = zmiana + 1; depo = tablica[ i ]; tablica[ i ] = tablica[ i + 1 ]; tablica[ i + 1 ] = depo; } } } while( zmiana != 0 ); cout << endl; cout << "Tablica po sortowaniu" << endl; for( i = 0; i < rozmiar; i++ ) cout << tablica[ i ] << " "; delete[] tablica; } else { cout << "To nie jest cyfra"; } return 0; }
|
|
pekfos |
» 2017-11-11 19:43:25 wypisanie nie posegregowanej tablicy jest okej ale w wypadku drugiej ginie część po przecinku. |
Bo twoja zamiana wartości nie działa na float. A co to takiego? |
|
dartpizza88 Temat założony przez niniejszego użytkownika |
» 2017-11-11 19:47:46 Chodziło mi to by nie móc wykorzystać liczby wymiernej, a co do problemu z wypisaniem jak to rozwiązać? |
|
« 1 » 2 |