C#-ba feladatot kell megcsinálnom, de nem bírok vele valaki segítene?
végül így oldottam meg.
// MAXIMUM KIVÁLASZTÁS TÉTELE
int max = t[0];
int index = 0;
for (i = 1; i < t.Length; i++)
{
if (t[i] > max)
{
max = t[i];
index = i;
}
}
Console.WriteLine("A legnagyobb ember magassága {0} cm",max);
Console.WriteLine("A legnagyobb ember sorszáma: {0}",index+1);
Console.WriteLine("A legnagyobb ember neve: {0}",nevek[index]);
Jelenleg a max-ban a legnagyobb magasságot magát tárolod, nem az indexét a tömbben. Így a nevek[max] nem fogja kiadni a legmagasabb ember nevét, hiszen ha a max magasság mondjuk 185 cm, akkor a nevek tömb 185. elemét akarnád kiírratni. ilyen persze nincs.
Megoldás: a max-ban nem magát a magasságot tárolod el, hanem az indexet.
max = t[i] helyett max = i legyen.
Így a kiíratásnál a t[max] és a nevek[max] fogja visszaadni a legmagasabb ember magasságát és nevét.
végül így oldottam meg:
// MAXIMUM KIVÁLASZTÁS TÉTELE
int max = t[0];
int index = 0;
for (i = 1; i < t.Length; i++)
{
if (t[i] > max)
{
max = t[i];
index = i;
}
}
Console.WriteLine("A legnagyobb ember magassága {0} cm",max);
Console.WriteLine("A legnagyobb ember sorszáma: {0}",index+1);
Console.WriteLine("A legnagyobb ember neve: {0}",nevek[index]);
Egy hosszabb LINQ megoldás.
public class Ember
{
public Dictionary<int,Dictionary<int,string>> Emberek { get; set; }
public Ember()
{
this.Emberek = new Dictionary<int, Dictionary<int, string>>();
}
}
class Program
{
static void Main(string[] args)
{
//bekérés
Ember ember = new Ember();
int i = 1;
string nev = null;
int magassag = 0;
do
{
Console.WriteLine("Adjon meg egy nevet");
nev = Console.ReadLine().ToString();
Console.WriteLine("Adjon meg hozzá egy magasságot");
magassag = Convert.ToInt32(Console.ReadLine());
ember.Emberek.Add(i,new Dictionary<int,string>()
{{magassag,nev}});
i++;
} while (i<= 5);
Console.WriteLine("A bekérés megtörtént");
Console.WriteLine("------------Eddig bent lévő adatok-------");
foreach (var item in ember.Emberek)
{
Console.Write("ID : "+item.Key+" ");
foreach (var g in item.Value)
{
Console.Write("Magasság : "+g.Key + " - Név : "+g.Value);
}
Console.WriteLine();
}
var maxMagassag = ember.Emberek.Max(X => X.Value.Max(g => g.Key));
var MAX = ember.Emberek.Where(g => g.Value.Select(j => j.Key).FirstOrDefault() == maxMagassag).First();
int ID = MAX.Key;
string name = MAX.Value.First().Value;
Console.WriteLine("Legmagasabb : {0} cm az ID : {1} és a Neve : {2}", maxMagassag, ID,name);
Console.ReadKey();
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!