Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с ошибкой в коде C#

coda8 Ученик (59), на голосовании 2 месяца назад
 Console.WriteLine("Введите число индексов в массиве: "); 
int length = int.Parse(Console.ReadLine());

int[] arrayParity = new int[length];


int odd = 0, even = 0;

for (int i = 0; i < arrayParity.Length; i++)
{
Console.Write("Введите значения массива " + i + " = ");
int value = int.Parse(Console.ReadLine());

arrayParity[i] = value;

}


for (int i = 0; i <= arrayParity[i]; i++)
{
if (arrayParity[i] % 2 == 0)
{
even += arrayParity[i];

}
else
{
odd += arrayParity[i];


}
}
Console.WriteLine("Сумма четных: " + even);
Console.WriteLine("Сумма нечетных: " + odd);

Этот код должен проверять значения массива, если четное переносить в переменную и складывать их, аналогично с нечетными, но некоторые значения он не читает почему то.
Голосование за лучший ответ
Тим Фамилия Мыслитель (5463) 4 месяца назад
В вашем коде есть ошибка в последнем цикле, где вы пытаетесь пройтись по массиву. Вместо i <= arrayParity[i] должно быть i < arrayParity.Length.

Вот исправленный код:

using System;

class Program
{
static void Main()
{
Console.WriteLine("Введите число индексов в массиве: ");
int length = int.Parse(Console.ReadLine());

int[] arrayParity = new int[length];

int odd = 0, even = 0;

for (int i = 0; i < arrayParity.Length; i++)
{
Console.Write("Введите значения массива " + i + " = ");
int value = int.Parse(Console.ReadLine());

arrayParity[i] = value;
}

for (int i = 0; i < arrayParity.Length; i++) // Исправлено здесь
{
if (arrayParity[i] % 2 == 0)
{
even += arrayParity[i];
}
else
{
odd += arrayParity[i];
}
}

Console.WriteLine("Сумма четных: " + even);
Console.WriteLine("Сумма нечетных: " + odd);
}
}
RatÆCat Оракул (62801) 4 месяца назад
 for (int i = 0; i <= arrayParity[i]; i++)  
 { 
Jurijus Zaksas Искусственный Интеллект (453892) 3 месяца назад
Изучай методы, юный падаван. Вот, например, метод, который посчитает тебе твою сумму - четные или нечетные на выбор:

 static int SumEvenOrOdd(IEnumerable a, bool SumEven) => a.Where(x => (x & 1) == 0 == SumEven).Sum(); 
Похожие вопросы