PDA

View Full Version : تفکیک اندیس های زوج و فرد یک آرایه در دو آرایه جداگانه



hosseines
دوشنبه 26 آبان 1393, 11:46 صبح
با سلام یه آرایه به طول n درم که می خوام اندیس های زوج این آرایه را در یک آرایه و اندیس های فرد را در آرایه دیگر بریزیم چکار باید کنم.

mehran6764
دوشنبه 26 آبان 1393, 12:42 عصر
این کد رو امتحان کن :


int[] numbers = new int[10];
int zojcount=1;
int fardcount=1;

numbers[1] = 126;
numbers[2] = 14;
numbers[3] = 58;
numbers[4] = 45;


int[] fard = new int[3];
int[] zoj = new int[3];
for(int i=1;i<=4;i++)
{
if (i % 2 == 0)
{

zoj[zojcount] = numbers[i];
zojcount++;

}

if (i % 2 != 0)
{

fard[fardcount] = numbers[i]; ;
fardcount++;


}

hamid_hr
دوشنبه 26 آبان 1393, 16:02 عصر
string[] str = new string[20];
int i = 0;
var q1 = (from x1 in
(from x in str.AsEnumerable()
select new
{
INDEX = i++,
Value = x
})
where x1.INDEX % 2 == 0
select x1.Value).ToArray();
i = 0;
var q2 = (from x1 in
(from x in str.AsEnumerable()
select new
{
INDEX = i++,
Value = x
})
where x1.INDEX % 2 != 0
select x1.Value).ToArray();

rahnema1
دوشنبه 26 آبان 1393, 19:54 عصر
سلام
به این صورت هم میتونید بنویسید

int[] myarray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = myarray.Length;
var zoj = Enumerable.Range(0, (n - 1) / 2 + 1).Select(v => myarray[2 * v]).ToArray();
var fard = Enumerable.Range(0, n / 2).Select(v => myarray[2 * v + 1]).ToArray();

hosseines
دوشنبه 26 آبان 1393, 22:41 عصر
دوست عزیز آقای mehran6764: ممنون بابت راهنمایی فقط می خوام مقادیر آرایه را از کد زیر بخواند. int[] arr = new int
[listBox1.Items.Count]; int n = arr.Length; if (n == 1) return; for (int i = 0; i < n; i++) { arr[i] = int.Parse(listBox1.Items[i].ToString()); }

mehran6764
سه شنبه 27 آبان 1393, 00:43 صبح
دوست عزیز آقای mehran6764: ممنون بابت راهنمایی فقط می خوام مقادیر آرایه را از کد زیر بخواند. int[] arr = new int
[listBox1.Items.Count]; int n = arr.Length; if (n == 1) return; for (int i = 0; i < n; i++) { arr[i] = int.Parse(listBox1.Items[i].ToString()); }

داداش اگه میش کدت رو داخل تگ کد بزار همون # که تو ادیتور دیده میشه ، چون من نتونستم کپی اش کنم ، منظورت از سوال رو هم متوجه نشدم . الان این سوال شما یه سوال جدیده یا همون جریان زوج و فرده اس ؟

hosseines
سه شنبه 27 آبان 1393, 14:15 عصر
نه سوال جدید نیست دوست عزیز همون زوج و فرد.. من آرایه رو از طریق مقادیر لیست باکس مقدار دهی کردم و میخوام از همین آرایه دو آرایه زوج و فرد رو نمایش بدم که کد مقدار دهی آرایه بصورت زیر: int[] arr = new int
[listBox1.Items.Count]; int n = arr.Length; if (n == 1) return; for (int i = 0; i < n; i++) { arr[i] = int.Parse(listBox1.Items[i].ToString()); }

mehran6764
سه شنبه 27 آبان 1393, 17:57 عصر
نه سوال جدید نیست دوست عزیز همون زوج و فرد.. من آرایه رو از طریق مقادیر لیست باکس مقدار دهی کردم و میخوام از همین آرایه دو آرایه زوج و فرد رو نمایش بدم که کد مقدار دهی آرایه بصورت زیر: int[] arr = new int
[listBox1.Items.Count]; int n = arr.Length; if (n == 1) return; for (int i = 0; i < n; i++) { arr[i] = int.Parse(listBox1.Items[i].ToString()); }

چرا لیست باکس رو درون یه ارایه بریزیم و از درون ارایه اندیس های زوج و فرد رو جدا کنیم ؟ از همون اول اندیس های فرد و زوج ارایه رو تفیک کنیم بهتر نیست ؟


int[] fard = new int
[listBox1.Items.Count];
int[] zoj = new int
[listBox1.Items.Count];
int zojcount = 0;
int fardcount = 0;
for (int i = 0; i < listBox1.Items.Count; i++)
{
if (i % 2 == 0)
{

zoj[zojcount] = int.Parse(listBox1.Items[i].ToString());
zojcount++;

}

if (i % 2 != 0)
{

fard[fardcount] = int.Parse(listBox1.Items[i].ToString());
fardcount++;


}

mehran6764
سه شنبه 27 آبان 1393, 18:02 عصر
نه سوال جدید نیست دوست عزیز همون زوج و فرد.. من آرایه رو از طریق مقادیر لیست باکس مقدار دهی کردم و میخوام از همین آرایه دو آرایه زوج و فرد رو نمایش بدم که کد مقدار دهی آرایه بصورت زیر: int[] arr = new int
[listBox1.Items.Count]; int n = arr.Length; if (n == 1) return; for (int i = 0; i < n; i++) { arr[i] = int.Parse(listBox1.Items[i].ToString()); }

چرا لیست باکس رو درون یه ارایه بریزیم و از درون ارایه اندیس های زوج و فرد رو جدا کنیم ؟ از همون اول اندیس های فرد و زوج ارایه رو تفیک کنیم بهتر نیست ؟
البته پیشنهاد می کنم به جای دو ارایه جدید ، دو arraylist تعریف کنی


int[] fard = new int
[listBox1.Items.Count];
int[] zoj = new int
[listBox1.Items.Count];
int zojcount = 0;
int fardcount = 0;
for (int i = 0; i < listBox1.Items.Count; i++)
{
if (i % 2 == 0)
{

zoj[zojcount] = int.Parse(listBox1.Items[i].ToString());
zojcount++;

}

if (i % 2 != 0)
{

fard[fardcount] = int.Parse(listBox1.Items[i].ToString());
fardcount++;


}