Kezdőoldal » Számítástechnika » Programozás » Hogyan tudnék C#-ban egy...

Csabakka kérdése:

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?

Figyelt kérdés
Az elemeit ismerem a dolognak, de arra sehogy se tudok rájönni, hogy a két adatot hogyan tudom összekötni?

2015. jan. 13. 13:20
 1/7 anonim ***** válasza:

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]);

}

2015. jan. 13. 13:59
Hasznos számodra ez a válasz?
 2/7 SimkoL ***** válasza:
Ha suliba kell attól függ miket tanultatok. Lehet két vektor, egy kétdimenziós tömb, rekord típusú tömb ez elején ezt oktatják.
2015. jan. 13. 14:10
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
hát a Dictionary még nem volt, list meg tömb igen, éppen ez a problémám, hogy két külön típust hogyan "kapcsoljak" össze, előre nem tudni hogy mennyi "pár" lesz, de az biztos, hogy minden stringhez tartozik egy int - a bekérés egy do While ciklusban megy, amíg be nem fejezi a fh. A végén meg egy függvénnyel kell kiírni, hogy melyik int-string pár a legnagyobb...
2015. jan. 13. 20:32
 4/7 SimkoL ***** válasza:

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.

2015. jan. 13. 22:06
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
Nagyon köszönöm, én is az azonos index-ből indultam ki de nem tudtam, hogy kezeljem. Köszi!!!!!
2015. jan. 14. 08:12
 6/7 SimkoL ***** válasza:
Sokkal szebb lett volna egy rekord típusú tömb, de ha még nem jártok ott :)
2015. jan. 14. 16:26
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
az, ami az első megoldásban volt, a dictionary-s? Abban azért elég sok újdonság van nekem... de alapvetően a rekordok már elindultak az anyagban...
2015. jan. 15. 07:47

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!