Evo ti nešto na brzinu da se ne mučiš preterano.
Kod je rađen na brzinu, pa ako se potkrala neka greška ili kod nije najoptimizovaniji, ne zamerite.
Klasa matrica
Code:
using System;
using System.Collections.Generic;
using System.Text;
namespace Matrice
{
class Matrica
{
private int _i, _j;
private int[,] _n;
public int i
{
get { return _i; }
}
public int j
{
get { return _j; }
}
public Matrica()
{
_i = 0; _j = 0; _n = new int[0,0];
}
public Matrica(int i, int j, params int[] n)
{
_i = i; _j = j; _n = new int[i, j];
int k = 0;
for (int ii = 0; ii < _i; ii++)
for (int jj = 0; jj < _j; jj++)
_n[ii, jj] = n[k++];
}
public override string ToString()
{
if (i == 0)
return "[,]";
else
{
string s = string.Empty;
for (int ii = 0; ii < i; ii++)
{
for (int jj = 0; jj < j; jj++)
{
s += string.Format("{0,-3}", _n[ii, jj]);
}
s += Environment.NewLine;
}
return s;
}
}
public int dohvati(int ii, int jj)
{
return _n[ii, jj];
}
}
}
Program
Code:
using System;
using System.Collections.Generic;
using System.Text;
namespace Matrice
{
class Program
{
static void Main(string[] args)
{
Stack<Matrica> st = new Stack<Matrica>();
Console.Write("Unesi broj matrica: ");
int n;
int.TryParse(Console.ReadLine(), out n);
for (int i = 0; i < n; i++)
{
Console.WriteLine("Matrica [{0}]: ", i + 1);
Console.Write("i? : ");
int ii;
int.TryParse(Console.ReadLine(), out ii);
Console.Write("j? : ");
int jj;
int.TryParse(Console.ReadLine(), out jj);
if (ii == 0 || jj == 0)
{
Matrica m = new Matrica();
st.Push(m);
}
else
{
int[] niz = new int[ii * jj];
Console.WriteLine("Unesite elemente matrice: ");
for (int x = 0; x < niz.Length; x++)
int.TryParse(Console.ReadLine(), out niz[x]);
Matrica m = new Matrica(ii, jj, niz);
st.Push(m);
}
}
// I sad radis sa stekom sta hoces
if (st.Count > 0)
{
Matrica mat = st.Pop();
Console.WriteLine("Ovo je matrica:\n{0}", mat);
}
else
{
Console.WriteLine("Stek je prazan");
}
}
}
}