为什么这段代码总是返回错误答案?

问题描述 投票:0回答:0

我有这个代码:

int maxPonty = 0;
        string fogtaKi2 = "";
        string melyikVersenyen2 = "";
        while (enumerator.HasNext())
        {
            enumerator.Next();
            int pontyokSzama = 0;
            foreach (var fogas in enumerator.Fogasok)
            {
                pontyokSzama = 0;
                if (fogas.Fajta == "Ponty")
                {
                    pontyokSzama++;
                }
            }
            if (pontyokSzama > maxPonty)
            {
                maxPonty = pontyokSzama;
                fogtaKi2 = enumerator.Horgasz;
                melyikVersenyen2 = enumerator.VersenyAzonosito;
            }
        }

        if (maxPonty == 0)
        {
          Console.WriteLine("Nem fogtak pontyot a versenyeken!");
        }
        else
        {
            Console.WriteLine($"A legtöbb pontyot fogta: {fogtaKi2}, a(z) {melyikVersenyen2} versenyen, {maxPonty} db-ot.");
        }
    }

它的目的是确定捕获最多“ponty”鱼的“horgasz”。由于某种原因,计数器最后始终为 0,这使得代码返回错误的答案,即使文件在几个地方包含“Ponty”。

这是输入文件的一行:PETERÁK Zsófia1231 Csuka 34 Süllő 62 Ponty 48

奇怪的是,必须确定捕获的最大“Ponty”的这段代码工作正常:

        double maxSuly = 0;
        string fogtaKi = "";
        string melyikVersenyen = "";

        while (enumerator.HasNext())
        {
            enumerator.Next();
            foreach (var fogas in enumerator.Fogasok)
            {
                if (fogas.Fajta == "Ponty" && fogas.Meret > maxSuly)
                {
                    maxSuly = fogas.Meret;
                    fogtaKi = enumerator.Horgasz;
                    melyikVersenyen = enumerator.VersenyAzonosito;
                }
            }
        }

        if (maxSuly == 0)
        {
            Console.WriteLine("Nem fogtak pontyot a versenyeken!");
        }
        else
        {
            Console.WriteLine($"A legnagyobb ponty súlya: {maxSuly} kg, a(z) {melyikVersenyen} versenyen fogta ki: {fogtaKi}");
        }

柜台可能有什么问题?

c# ienumerator
© www.soinside.com 2019 - 2024. All rights reserved.