Problem związany z napisaną przezemnie funkcją show_array();
Ostatnio zmodyfikowano 2015-11-24 16:28
Rudnicky Temat założony przez niniejszego użytkownika |
Problem związany z napisaną przezemnie funkcją show_array(); » 2015-11-24 16:08:29 Witam, Napisałem program do obsługi tablicy jednowymiarowej. Program składa się z trzech funkcji: funkcja pobierająca dane, wyświetlająca i funkcja odwracająca tablice. Pobiera dobrze, wyświetla dobrze, odwraca też okej ale zaraz po użyciu jeszcze raz funkcji wyswietlającej zaraz po reverse_array chciałbym aby ta funkcja wyświetliła już odwróconą macierz. Prosiłbym o pomoc, pozdrawiam. Poniżej wklejam kod programu. #include <iostream>
using namespace std;
const int size = 5;
void fill_array( double tab[], int size ); void show_array( double tab[], int size ); double reverse_array( double tab[], int size );
int main() { double tablica[ size ]; fill_array( tablica, size ); show_array( tablica, size ); reverse_array( tablica, size ); show_array( tablica, size ); system( "PAUSE" ); return 0; }
void fill_array( double tab[], int size ) { int i; for( i = 0; i < size; i++ ) { cout << "Podaj #" << i + 1 << " element tablicy: "; cin >> tab[ i ]; } }
void show_array( double tab[], int size ) { int i; cout << "\nWYSWIETLANIE\n\n"; for( i = 0; i < size; i++ ) { cout << "element: " << i + 1 << " tablicy = " << tab[ i ] << "\n"; } }
double reverse_array( double tab[], int size ) { cout << "\nODWRACANIE\n\n"; int i; for( i = size - 1; i >= 0; i-- ) { cout << "element: " << i + 1 << " tablicy = " << tab[ i ] << "\n"; } return tab[ i ]; }
|
|
Szadziu |
» 2015-11-24 16:20:42 reverse_array nie odwraca tablicy tylko wyswietla ja od konca |
|
Rudnicky Temat założony przez niniejszego użytkownika |
» 2015-11-24 16:21:00 Jeszcze mam jedno pytanie dotyczące tego fragmentu kodu: void fill_array( double tab[], int size ) { int i; for( i = 0; i < size; i++ ) { cout << "Podaj #" << i + 1 << " element tablicy: "; if( !( cin >> tab[ i ] ) ) { cout << "PRZERYWAM!\n\n\n"; } } }
Funkcja wypełniająca tablice w momencie podania np litery przerywa program, jednak nie wyświetla napisu "przerywam". Czy ma ktoś pomysł w jaki sposób mógłbym przerwać działanie całego programu i wyświetlić tylko komunikat "PRZERYWAM" w momencie w którym użytkownik poda błędne dane? |
|
Szadziu |
» 2015-11-24 16:22:37 przypisz wartość pobrana z cin to tempowej zmiennej string. Sprawdź czy jest liczbą. Jak tak to dodaj do tab jak nie wyświetl komunikat i zakończ |
|
Rudnicky Temat założony przez niniejszego użytkownika |
» 2015-11-24 16:28:23 Dzięki Szadziu za odpowiedź. Poprawiłem funkcje reverse_array.. double reverse_array( double tab[], int size ) { cout << "\nODWRACANIE\n\n"; int i, j, temp; for( i = 0, j = size - 1; i < size / 2; i++, j-- ) { temp = tab[ i ]; tab[ i ] = tab[ j ]; tab[ j ] = temp; } }
|
|
« 1 » |