گرفتن مقدار 4 کاربر برتر

#C

توسط thearrow در 4 سال پیش
0 1.2k 5 4 سال پیش
thearrowalidevelopercomodobarnamenevis
0

سلام من یک برنامه نوشتم (بازی اعداد) که مثلا 10 تا کاربر داره ( یا حتی شاید n تا کاربر داشته باشیم یعنی مشخص نباشه ) که هرکدوم یک مقدار عددی دارند :

reza:10
iman:25
ali:85
ramin:74
omid:13
raha:8
mehran:547
shahin:74
mahan:11
mehrdad:14

چطوری کدی بنویسم که 4 کاربری که اعداد بیشتری رو دارند رو نشون بده ؟ ( حتی اگه اعداد اون 4تا مثله هم باشه و باید بیشتر از بقیه باشه ) یعنی این 4 تا:

mehran:547
ali:85
ramin:74
shahin:74

و به این صورت نمایش بده :

1. "mehran"  Emtiaz: 547
2. "ali"  Emtiaz:85
3. "ramin"  Emtiaz:74
4. "shahin"  Emtiaz:74

ممنون

0

سلام هر کدومو تو آرایه بریز و بعد sort کن! به همین راحتی

[CSHARP] // array of custom type User[] users = new User[3] { new User("Betty", 23), // name, age new User("Susan", 20), new User("Lisa", 25) }; [/CSHARP]

مرتب سازی: [CSHARP] // sort array by age Array.Sort(users, delegate(User user1, User user2) { return user1.Age.CompareTo(user2.Age); // (user1.Age - user2.Age) }); // write array (output: Susan20 Betty23 Lisa25) foreach (User user in users) Console.Write(user.Name + user.Age + " "); [/CSHARP]

0

ممنون فقط چه Reference ـی رو به پروژه اضافه کنم ؟ من

using Microsoft.VisualBasic.ApplicationServices;

رو اضافه کردم اما اشتباهه انگار

ممنون

0

سلام اون کدی که ایشون گذاشتن بنظر میرسه فقط مثاله ولی روش کلی همینه

0

شما باید قبل از اینکه داده ها رو تو لیست بذاری مرتب کنی که بعدش مجبور نشی دوباره مرتب کنی و کد اضافه بنویسی

0

کد: [CSHARP] string[] items = new string[listBox1.Items.Count]; listBox1.Items.CopyTo(items, 0); Array.Sort(items, delegate(string a, string b) { int ascore = int.Parse( a.Substring(a.IndexOf(':') + 1)); int bscore = int.Parse( b.Substring(b.IndexOf(':') + 1)); return ascore == bscore ? 0 : (ascore < bscore ? 1 : -1); }); foreach (string s in items) { Console.WriteLine(s.Replace(":", " score: ")); } [/CSHARP]

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید