Hogyan tudnék C#-ban egy konzol app-ban öbb string és hozzá tartozó int típusú adatot bekérni billentyűzetről aztán az int alapján kiválasztani a legnagyobbat?
Hány adatot akarsz bekérni? Mert mondjuk lehet úgy hogy 1 stringhez 1 int járul, ehhez tudod az Dictionary típust használni (var dict = new Dictionary<string,int>();) Bekéred úgy, hogy először adja meg a szöveget, eltárolod ideiglenes stringbe, majd kiírod hogy adja meg a számot, ez az egész egy do-while ciklusban van benne, a ciklus végén egy kezdetben 0 változót 1-el növelsz amíg el nem éred azt a számot ahány adatot akarsz bekérni, majd mielőtt kilépsz a ciklusból, egy parancsot nyomatsz: dict.Add(string, int);
A ciklus után rendezed int szerint növekvőbe:
var novekvo = dict.Values.ToList();
az egészen végigfutni pedig:
foreach(var d in novekvo){
Console.WriteLine("szöveg: {0}, szám: {1}",d,dict[d]);
}
Bepakolod egy-egy list-be és ha nem nyúlsz hozzájuk akkor azonos indexen találhatóak az összetartozó párok. Utána már csak az int típusú List-en egy maximumkeresés és a és annak az indexnek megfelelőt kiíratni a szöveges List-ből. De lásd kivel van dolgod, - ma már több leb..st is kaptam miatta:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string szovegbe, szambe_s, folyt = ""; ;
int szambe = 0, max1 = int.MinValue, maxind = 0;
bool hiba;
List<string> szoveg = new List<string>();
List<int> szam = new List<int>();
do
{
Console.Write("Kérem a szöveget: ");
szovegbe = Console.ReadLine();
hiba = false;
while (!hiba)
{
Console.Write("Kérem a számot: ");
szambe_s = Console.ReadLine();
hiba = Int32.TryParse(szambe_s, out szambe);
}
szoveg.Add(szovegbe);
szam.Add(szambe);
Console.Write("Folytatod ? ('i/I' folytat, minden más befejez) ");
folyt = Console.ReadLine();
}
while ((folyt[0] == 'i') || (folyt[0] == 'I'));
for (int i = 0; i < szam.Count; i++)
{
if (szam[i] > max1)
{
max1 = szam[i];
maxind = i;
}
}
Console.WriteLine("A legnagyobb érték:");
Console.WriteLine(szoveg[maxind]);
Console.WriteLine(szam[maxind]);
Console.ReadLine();
}
}
}
Örülök ha hasznát veszed.
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!