#include <iostream>
#include <cstdlib>
#include <limits>
#include <iomanip>
using namespace std;
class macierz
{
public:
// atrybuty
int wiersze;
int kolumny;
// metody
void rozmiar()
{
cout << "liczba wierszy: ";
cin >> wiersze;
cout << "liczba kolumn: ";
cin >> kolumny;
}
void dane()
{
int** tab = new int* [wiersze]; //alokacja pamieci
for (int i = 0; i < wiersze; ++i)
{
tab[i] = new int[kolumny]; //alokacja pamieci
for (int j = 0; j < 1; ++j) //wpisanie wartosci do tablicy
for (int j = 0; j < kolumny; j++) {
cin >> tab[i][j];
}
}
}
void wyswietlanie()
{
//wyswietl macierz
for (int i = 0; i < wiersze; ++i, cout << endl)
for (int j = 0; j < kolumny; ++j)
cout << tab[i][j] << '\t';
}
void usuwanie()
{
for (int i(0); i < wiersze; ++i)
delete[] tab[i]; //uwolnienie pamieci
delete[] tab; //uwolnienie pamieci
*tab = NULL;
}
};
char wybór;
int main()
{
int choice = 0;
cout << "witaj w kalkulatorze macierzy \n"
"wybierz obliczenia jakie chcesz wykonac \n\n";
cout << "1 - dodawanie\n"
<< "2 - odejmowanie\n"
<< "3 - mnozenie\n"
<< "4 - obliczanie wyznacznika\n"
<< "5 - wyjscie\n\n"
<< "wprowadz swoj wybor: ";
while (!(cin >> choice)) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cerr << "\nERROR: wprowadz prawidlowe dane wejsciowe!\n"
<< "wprowadz swoj wybor ponownie: ";
}
cout << endl;
switch (choice) {
case 1:
macierz a;
a.rozmiar();
cout << "macierz a:\n";
a.dane();
a.wyswietlanie();
break;
}
cout << "\nnacisnij jakis przycisk...\n";
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.get();
system("CLS");
}
Trzeba zrobić dokładnie to samo co zrobiłeś dla wymiarów tablicy.
@_13th_Dragon: Tylko jak to ma wyglądać bo jeśli dodam int *tab to nie działa mi i tak coś
Masz nie dodać tylko przenieść deklarację z metody.
Wstawiłeś kod - ale jakie jest pytanie?
nie działa mi funkcja void wyswietlanie, usuwanie
tab
jest zmienną w funkcji, a nie klasie. Przenieś definicję w odpowiednie miejsce. Swoją drogą, jest jakiś powód dla którego nie używasz std::vector
?
główny powód to taki że nie wiem jak go używać
działa, nie mam pojęcia co wcześniej źle robiłem
a w jaki sposób mogę użyć std::vector?
@Lemonhaze2108:
Mówił Ci ktoś, ze jesteś leń, ewentualnie cierpiący obywatel wykluczony z odstępu do googla.
Jak chcesz bywać na forach dla programistów, to my tu nie znamy zwrotu "nie działa" - lecz podanie konkretnych przejawów
vector<vector<int>> matrix(rowCount,vector<int>(colCount));
#include <iostream>
#include <vector>
using namespace std;
using table2D = vector<vector<int>>;
auto create( int rows , int columns )
{
table2D result( columns , vector<int>( rows , 0 ) );
for( auto& row : result ){ for( auto& value : row ) cin >> value; }
return result;
}
ostream& operator<<( ostream& out , const table2D& table )
{
for( const auto& row : table )
{
for( const auto& value : row )out << value << ' ';
out << endl;
}
return out;
}
int main()
{
table2D table = create(3,2);
cout << table;
}