2015-12-30 6 views
-6

У меня есть вопрос, пожалуйста, помогите мне. Я создаю 2 array s.
1) четные числа массив
2) нечетные числа массивМассивы с четными и нечетными номерами

В звукозаписывающей компании я вижу, что все в порядке. Массив хорош. Но они созданы не так, как я ожидал.

enter image description here

и массив 2

enter image description here

Мой код массива

for (indexi = 2; indexi < masivi1.Length; indexi = indexi + 2) 
{ 
    masivi1[indexi] = indexi; 

} 
for (k = 2; k < masivi1.Length; k = k + 2) 
{ 


    label2.Text += masivi1[k].ToString; 
} 

Второй массив

for (indexi1 = 0; indexi1 < masivi2.Length; indexi1++) 
{ 
    if (indexi1 % 2 != 0) 
    { 
     masivi2[indexi1] = indexi1; 
    } 
} 
for (k1 = 0; k1 < masivi2.Length; k1++) 
{ 
    if (k1 % 2 != 0) 
    { 
     label3.Text += masivi2[k1].ToString() + " | "; 
    } 
} 

Может кто-то помочь, чтобы показать решение для создания массива правильно, как

2,4,6 ...
1,3,5 ...

+1

нажмите на ссылки выше на свой страх и риск – Drew

+1

@Drew: Все, что я вижу, это несколько скриншотов. Опять же, я использую NoScript; нет идеи, если он попытается что-то противное, если я позволю ему запустить скрипты. –

+2

Почему кто-то не может создать текстовый вывод вне меня. Парень, стоящий здесь, я прощаю больше. Насколько нам известно, это даже не вопрос. – Drew

ответ

2

Вы можете заполнить два массива с нечетными, четные числа, как этот

var evenArray = new int[10]; 
var oddArray = new int[10]; 

for (int i = 0, even = 0; i < evenArray.Length; i++, even += 2) 
{ 
    evenArray[i] = even; 
} 

for (int i = 0, odd = 1; i < oddArray.Length; i++, odd += 2) 
{ 
    oddArray[i] = odd; 
} 

Производные

evenArray = [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 ] 
oddArray = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 ] 
+0

Спасибо. эта работа прекрасна. большое спасибо – refreshg

+0

@refreshg рад, что это помогло.Пожалуйста, посмотрите комментарии и напишите лучший пост в следующий раз :) –

1

Не уверен, что вы пытаетесь достичь, но это выглядит не так:

for (indexi = 2; indexi < masivi1.Length; indexi = indexi + 2) 
{ 
    masivi1[indexi] = indexi; 
} 

, как вы только положить что-то в каждый второй элемент массива, то есть 2, 4, 6, ...

Может быть, это то, что вы хотите:

for (indexi = 0; indexi < masivi1.Length; ++indexi) 
{ 
     masivi1[indexi] = 2*indexi + 2; 

} 

Второй массив имеет ту же проблему:

for (indexi1 = 0; indexi1 < masivi2.Length; indexi1++) 
{ 
     if (indexi1 % 2 != 0) // This line means that you only put 
           // elements in the array when index1 = 1, 3, 5, ... 
     { 
      masivi2[indexi1] = indexi1; 
     } 
} 
+0

спасибо человек :) – refreshg

1
for (int indexi = 0; indexi < masivi1.Length && indexi < masivi2.Length; ++indexi) 
{ 
    if (indexi % 2 == 0) 
    { 
     masivi1[indexi/2] = indexi; 
    } 
    else 
    { 
     masivi2[indexi/2] = indexi; 
    } 
} 
+0

спасибо за вопрос – refreshg

+0

Хотя этот код может ответить на вопрос, лучше объяснить, что он делает, и добавить некоторые ссылки на него. – dotctor

Смежные вопросы