Witam, mam problem z odczytem wartosci macierzy w moim projekcie kalkulatora macierzy.
Funkcja w ktorej wystepuje problem:
int Macierz::wartoscWK(int wiersz, int kolumna){
wiersz--;
kolumna--;
if (kolumna > ileKolumnMacierzy() || wiersz > ileWierszyMacierzy() || kolumna < 0 || wiersz < 0) {
cout << "Out of range. Wiersz: " << wiersz << " kolumna: " << kolumna << endl;
}
return macierz[wiersz][kolumna];
}
Macierz.h
#pragma once
class Macierz{
int** macierz;
int iloscWierszyMacierzy;
int iloscKolumnMacierzy;
public:
Macierz();
~Macierz();
int ileWierszyMacierzy();
int ileKolumnMacierzy();
void ustawWierszeMacierzy(int ile);
void ustawKolumnyMacierzy(int ile);
int wartoscWK(int wiersz, int kolumna);
void Dodawanie(Macierz m);
void Wpisz();
void Wypisz();
};
I ew. funkcja tworząca macierz:
void Macierz::Wpisz(){
int kolumny, wiersze;
cout << "Podaj ilosc wierszy w macierzy (max 20)" << endl;
cin >> wiersze;
while (wiersze >= 20 || wiersze <= 1) {
cout << "Wpisz poprawna ilosc wierszy (max 20)" << endl;
cin >> wiersze;
}
cout << "Podaj ilosc kolumn w macierzy (max 20)" << endl;
cin >> kolumny;
while (kolumny >= 20 || kolumny <=1) {
cout << "Wpisz poprawna ilosc kolumn (max 20)" << endl;
cin >> kolumny;
}
iloscKolumnMacierzy = kolumny-1;
iloscWierszyMacierzy = wiersze-1;
int** macierz = new int*[wiersze];
for (int i = 0; i < wiersze; i++) {
macierz[i] = new int[kolumny];
for (int j = 0; j < kolumny; j++) {
int liczba = 0;
cout << "Wpisz w miejsce i: " << i+1 << " j: " << j+1 << " liczbe" << endl;
cin >> liczba;
macierz[i][j] = liczba;
}
}
for (int i = 0; i < wiersze; i++) {
for (int j = 0; j < kolumny; j++) {
cout << macierz[i][j] << " ";
}
cout << endl;
}
}
Main zawiera jedynie stworzenie obiektu i wywołanie problematycznej funkcji.
Zaczynam z C++ więc prosze punktowac mój kod ale bez hejtu.