Witam szanownych użytkowników, mam takie pytanie czy może ktoś z was pisał program wyświetlający macierze rzadkie ?
Osobiście pojęcia jak to zrobić zacząłem pisać ale utknąłem na tym że przydały by się tu wyznaczniki których nie znam zresztą i tak nie mogę ich użyć.
Zdaję sobie sprawę że wybrałem najłatwiejszy sposób prosząc was zamiast samemu to rozgryźć, ale po tygodniu zmagań przestało mnie to bawić.
Z góry dziękuję za wszelką pomoc.
eee... np tak ?
M[2,3]=4
M[4,4]=8
M[100,100]=1
@up, i jak masz macierz M 1000x1000, która ma jeden element niezerowy M[235,745]=45, to musisz pamiętać milion liczb. Lekko bez sensu. Lepiej pamiętać jako trójkę (235,475,45).
Ok ale jak juz bede to pamietal jako trojki to potem jak wyswietle to jako macierz
Nie znam kolekcji w C++. w Javie wyglądało by to tak (korzystam ze standardowej klasy Point):
int rows=...; //ilość wierszy
int cols=...; //ilość kolumn
HashMap<Point,Double> macierz=new HashMap<Point,Double>();
macierz.add(new Point(77,123),23.6);
...
macierz.add(new Point(57,102),12.879);
for(int w=0;w<rows;w++)
for(int k=0;k,cols;k++)
if(macierz.get(new Point(w,k)==null)
//wypisz zero
else
//wypisz wyraz
dziękuję bardzo za pomoc już chyba wszystko kminie, ale żeby nie było zbyt kolorowo coś mi sie znowu sypneło a mianowciie ten moment
using namespace std;
int m, n, lw;
int main(int argc, char *argv[])
{
cout << "Podaj rozmiar macierzy rzadkiej m x n" << endl << "m= ";
cin >> m;
cout << "n= ";
cin >> n;
cout << "Ile wartosci niezerowych bedzie zawierac ta macierz ?"<<endl;
cin >> lw;
int matrix[m][n];
for(int j=0; j==n; j++)
{
for(int i=0; i==m; i++)
{
matrix[i][j] = 0;
};
};
Chce tablice wypełnić zerami ale potam jak sobie wyswietam np [5][5] to nie ma tam zera nie moge rozkminic co jest zle
for(int j=0; j<n; j++)
{
for(int i=0; i<m; i++)
wszystko już napisane i ładnie działa prócz wyświetlania
jak teraz zrobić żeby wyświetlało np 20x20 a potem szlo w dol az sie skonczy i potem np w lewo
mowiac prosiej podzielilo calosc na ladne rowne kawalki
Chce zeby macierz byla wyswietlana kwadratami 20x20 idacymi w prawo ale cos nie działa