Tömben szereplő adatokat szeretném megszámolni egy adott tömb feltételei szerint. hol csusztam el?
int[] tomb = { 0, 3, 1, 2, 3, 4, 5, 1, 5, 6, };
int[] szamok = { 0,1,2,3,4,5,6,7,8,9};
int[] db = new int[10];
for (int i = 0; i < tomb.Length; i++)
{
if (tomb[i] < szamok[i])
db[i]++;
Console.Write($"{db[i]}");
}
"db[i]++;" - ez mi?
Így a db tömb i-edik elemét növeled egyel és, mert "i" folyton változik, minden elem 1 lesz.
Ha egy értéket akarsz növelni, akkor db++ (de akkor "db" integer), ha egy tömbhöz akarsz értéket adni, akkor meg db[i] = tomb[i] (vagy szamok[i]).
#2
Sok nyelvben megengedett a trailing comma.
Pl. C#, PHP, stb.
A zárójelben hol látsz hibát?
Kérdező: mit szeretnél pontosan megszámolni?
Most tényleg fenn akadtok egy trailing comma-n? :D
Akár véletlenül hagyta ott, akár nem, ettől még lefut a program.
Mindkét tömbjében 10 szám van.
ez c#
de az a kérdés, mit szeretnél, megszámolni, hogy az egyes számok hányszor szerepelnek a tömbben?
Ha azt szeretnéd megszámolni, hogy a szamok tömb i. helyén lévő értékből mennyi van a tomb-ben összesen, akkor megvizsgálod a tomb i. elemét, majd a db-nek azt az elemét növeled eggyel, amilyen értéket kiolvastál a tomb i. helyéről.
Tehát nem lesz if, csak simán:
db[tomb[i]] +=1;
és a végén kiiratod a statisztikát. Egyébként fölösleges volt létrehozni ehhez a szamok tömböt, mert sima iterációval is vissza tudod fejteni ezeket a számokat (0...9). Ha más számok lennének a szamok tömbben vagy más lenne a sorrend, akkor meg egymásba ágyazott ciklussal kellene dolgoznod és összehasonlítással.
int[] db = new int[10]; helyett int db = 0;
db[i]++; helyett db++;
és innen:
}
Console.Write($"{db}");
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!