C# -ban lévő matrix (tömb) fel van töltve, és ebből kéne nekem az oszlopokat összeadnom egy újabb vektorba. Ehhez szeretnék segítséget kérni Próbálkoztam // eredmeny[j] = eredmeny[j]+szorzat[i, j];// egy ilyennel, de nem működik. Tudnátok segíteni?
A kétdimenziós tömb elképzelhető táblázatként. A külsőtömbtömb-ben vannak belsőtömb elemek.
Ha a belsőtömb-öket sornak veszed a táblázatodban, akkor egy n. oszlop az összes belsőtömb n. elemét fogja tartalmazni.
Inicializálj egy nullákból álló, sorok_száma méretű tömböt eredmeny néven.
FOR ciklus (i<sorok_száma, i++) {
FOR ciklus (j<oszlopok_száma, j++) {
eredmeny[i] += matrix[i][j]
// nézd meg, a cellára úgy hivatkozok, hogy tömb[sorsz][oszlsz]
}}
Ha a belsőtömbök az oszlopok (mert így is lehet értelmezni), akkor máshogy kell.
Ilyenkor a cellára így lehet hivatkozni: tömb[oszlsz][sorsz]
FOR ciklus (j<oszlopok_száma, j++) {
FOR ciklus (i<sorok_száma, i++) {
eredmeny[i] += matrix[j][i]
}
}
Console.Write("Add meg a tömb sorainak számát: ");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write("Add meg a tömb oszlopainak számát: ");
int m = Convert.ToInt32(Console.ReadLine());
Random rnd = new Random();
int[,] tomb = new int[n, m];
int[] vektor = new int[n];
int[,] szorzat = new int[n, m];
int[] eredmeny = new int[m];
Console.Write("\n\nA vektor elemei:\n");
for (int i = 0; i < n; i++)
{
vektor[i] = rnd.Next(1, 10);
Console.Write("{0,4}", vektor[i]);
}
Console.Write("\n\nA tömb elemei:\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
tomb[i, j] = rnd.Next(1, 10);
Console.Write("{0,4}", tomb[i, j]);
}
Console.WriteLine();
}
Console.Write("\n\nA szorzatok elemei:\n");
//szorzás
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
szorzat[i, j] = tomb[i,j] * vektor[i];
Console.Write("{0, 4}", szorzat[i, j]);
}
Console.WriteLine();
}
Console.Write("\n\nAz oszlopok összege:\n");
//összeadás
for (int j = 0; j < n; j++)
{
for (int i = 0; i < m; i++)
{
eredmeny[j] = eredmeny[j]+=szorzat[i,j];
Console.Write("{0, 4}", eredmeny[i]);
}
Console.WriteLine();
}
Console.ReadLine();
Ennyit tudtam megcsinálni, de ha lefuttatom végén több sort ír ki mint amennyire nekem szükségem lenne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!