Tudnátok segíteni programozásban? (C#)
Van egy 10x10-es mátrixom (A), amiben számok vannak.
Létre kell hozni egy új mátrixot (B) és megadni hogy a régi (A) mátrixban az egyes helyeken álló számok mekkora része az összes szám összegének.
A képlet is megvan, hogy (A mátrix adott érték / összes összege )*100
Így néz ki a kód:
double[,] B = new double[A.GetLength(0), A.GetLength(1)];
for (int i = 0; i < B.GetLength(0); i++)
{
for (int j = 0; j < B.GetLength(1); j++)
{
B[i, j] = (A[i,j] / Szum(A)) * 100;
}
}
A Szum metódus egy int-et ad vissza, ami az összes összege és működik is.
Én valamiért 0-kat kapok mindenhova. Ha csak annyit írnék, hogy B[i, j] = A[i,j], akkor szépen átmásolná a mátrixot, de amint odaírom a Szum(A)-t, 0 lesz minden és nem jövök rá, hogy miért.
Jól írja az 1-es és a 2-es.
Azonkívül feleslegesen számolod ki a teljes mátrix összegét minden egyes elemhez. Csak egyszer kellene az elején, eltárolni és ezt az eltárolt értéket használni. Nem ez okozza a hibát, viszont nagyon nem optimális megoldás.
Köszi, ha átírom úgy, hogy B[i, j] = (A[i,j] / (double)Szum(A)) * 100, akkor működik is.
#3 Az is igaz, mondjuk nemrég kezdtük a nyelvet és annyira nem figyelik még, hogy a legoptimálisabb kódot írjuk, de köszi a tippet. :)
További kérdések:
Minden jog fenntartva © 2025, 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!