Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj, potřeboval bych poradit s tímto programem.
Console.Write("Zadej celé číslo,cyklus končí 0: ");
int cislo = int.Parse(Console.ReadLine());
int max = int.MinValue;
int max2 = int.MinValue;
while (cislo != 0)
{
if (cislo > max2)
{
if (cislo > max)
{
max2 = max;
max = cislo;
}
else
{
if (cislo < max)
{
max2 = cislo;
}
}
}
Console.Write("Zadej celé číslo,cyklus končí 0: ");
cislo = int.Parse(Console.ReadLine());
}
Console.WriteLine("Druhé největší číslo je {0}", max2);Potřebuji zjistit počet výskytu druhého největšího čísla.
Děkuji
Offline
Máš to téměř dobře, stačí přidat počítadla.
Jedno pro nejvyšší a druhé nejvyšší (pro případ kdy se nejvyšší stane druhým nejvyšším)
takže dobře funguje toto:
int cislo;
int max = int.MinValue;
int max2 = int.MinValue;
int count1 = 0;
int count2 = 0;
while (true)
{
Console.Write("Zadej celé číslo,cyklus končí 0: ");
cislo = Convert.ToInt32(Console.ReadLine());
if (cislo == 0)
break;
if (cislo == max)
{
Console.WriteLine("přicitam");
count1++;
}
if (cislo == max2)
{
Console.WriteLine("přicitam");
count2++;
}
if (cislo > max2)
{
if (cislo > max)
{
max2 = max;
max = cislo;
count2 = count1;
count1 = 1;
}
else
{
if (cislo < max)
{
max2 = cislo;
count2 = 1;
}
}
}
}
Console.WriteLine("Druhé největší číslo je "+max2.ToString()+" a je obsaženo "+count2.ToString()+"x");
Console.ReadLine();Offline