Hogyan tudnám megírni, hogy ne írja ki, ha 2 leghoszabb szó van? (C#)
Hali!Írtam egy ilyen programot:
static void Main(string[] args)
{
string[] szavak = new string[10];
int maxhossz = 0;
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Kérem a(z) {0}. szót: " ,i + 1);
string beolvas = Console.ReadLine();
szavak[i] = beolvas;
if (szavak[i].Length > maxhossz)
{
maxhossz = szavak[i].Length;
}
}
int leg = 0;
int hossz = 0;
for (int i = 0; i < 10; i++)
{
hossz = szavak[i].Length;
Console.WriteLine("\n" + szavak[i]);
Console.WriteLine("A szó hossza:{0} karakter", hossz);
if (hossz == maxhossz)
{
leg = hossz;
Console.WriteLine("Ez a leghosszabb szó!!! {0} Karakter hosszú!!", leg);
}
}
Console.ReadKey();
}
A program megszámolja a bevitt szavak karakterszámát és megmondja melyik a leghosszabb. A probléma az, hogy ha 2 egyforma hosszúságú szó van és pont azok a leghosszabbak akkor kiírja oda is, hogy az a leghosszabb, úgy szeretném, hogy ha 2 van akkor ki se írja! Előre is köszi!
static void Main(string[] args)
{
string[] szavak = new string[10];
int maxhossz = -1; //Érdemes így, ha üres szót is szónak tekinted
int index = -2; //Ez lesz az index, és így nem kell mégegyszer megkeresned, amit találtál :)
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Kérem a(z) {0}. szót: " ,i + 1);
string beolvas = Console.ReadLine();
szavak[i] = beolvas;
if (szavak[i].Length > maxhossz)
{
maxhossz = szavak[i].Length;
index = i; //Megjegyezzük, hol van...
}else if(szavak[i].Length == maxhossz)
{
index = -1; //Ha már van egy leghosszabb, "elcs.sszük" az indexváltozót :)
}
}
if(index==-2)
{
Console.WriteLine("\nNem adtál meg szót!");//Elvileg nem fordulhat elő
}else if(index == -1)
{
Console.WriteLine("\nTúl sok leghosszabb van!")
}
else
{
Console.WriteLine("\n" + szavak[i]);
Console.WriteLine("A szó hossza:{0} karakter", maxhossz);
}
Console.ReadKey();
}
//megszámolod, hogy hány ilyen sor van
int db=0;
for (int i = 0; i < 10; i++)
{
if (szavak[i].Length == maxhossz)
{
db++;
if(db==2) break;
}
}
//csak akkor írod ki, ha 1 db létezik
if (db==1 && hossz == maxhossz)
{
leg = hossz;
Console.WriteLine("Ez a leghosszabb szó!!! {0} Karakter hosszú!!", leg);
}
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!