Консультация № 198334
22.04.2020, 18:31
0.00 руб.
0 3 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:


Есть код, помогите написать поиск номеров всех нечетных элементов в массиве. (там есть отдельная функция для этого, выделила комментарием ):



Приложение:
using System;

namespace z2

{

class Program

{

static void RanArr(int[] a) //функция заполнения массива случайными элементами

{

Random rnd = new Random();

for (int i = 0; i < a.Length; i++)

{

a[i] = rnd.Next(-13, 12);

}

}

static void PrintArr(int[] a) //функция вывода массива

{

for (int i = 0; i < a.Length; i++) Console.Write("{0} ", a[i]);

Console.WriteLine();

}

static double NechNom(int[] a) //функция поиска нечетных номеров
{

}



static void Main(string[] args)

{

Console.WriteLine("Заполнение массива случайными значениями");

Console.WriteLine("Программа создает одномерный массив из 12 случайных чисел из диапазона [-13; 13],");

Console.WriteLine("и выводит на экран номера всех нечетных элементов."); //инструкция к программе

double k; //переменная для получаения результата

int[] a = new int[12]; //создание массива

RanArr(a); //вызов функции заполнения массива случайными числами

Console.WriteLine("\n");

Console.WriteLine("Создан случайный массив:");

PrintArr(a); //вызов функции вывода массива

k = NechNom(a); //вызов функции поиска номеров всех нечетных элементов

Console.WriteLine("\n");

Console.WriteLine("Номера всех нечетных элементов: ", k); //вывод результатов

Console.ReadLine();

}

}

}

Обсуждение

давно
Советник
400484
472
23.04.2020, 09:18
общий
Добрый день.
это не дубликат вопроса?
давно
Советник
400484
472
23.04.2020, 09:56
общий
это ответ
Здравствуйте, niktop1!
Вот пример как можно было сделать ваш метод:
Код:

using System;

namespace z2
{
class Program
{
static void RanArr(int[] a) //функция заполнения массива случайными элементами
{
Random rnd = new Random();
for (int i = 0; i < a.Length; i++)
{
a[i] = rnd.Next(-13, 13);
}
}
static void PrintArr(int[] a) //функция вывода массива
{
for (int i = 0; i < a.Length; i++) Console.Write("{0} ", a[i]);
Console.WriteLine();
}
static string NechNom(int[] a) //функция поиска нечетных номеров
{
var arrey = string.Empty;
for(var i = 0; i < a.Length; ++i)
{
if (a[i] % 2 == 0)
continue;

arrey += i + " ";
}

return arrey;
}

static void Main(string[] args)
{
Console.WriteLine("Заполнение массива случайными значениями");
Console.WriteLine("Программа создает одномерный массив из 12 случайных чисел из диапазона [-13; 13],");
Console.WriteLine("и выводит на экран номера всех нечетных элементов."); //инструкция к программе
string k; //переменная для получения результата
int[] a = new int[12]; //создание массива
RanArr(a); //вызов функции заполнения массива случайными числами
Console.WriteLine();
Console.WriteLine("Создан случайный массив:");
PrintArr(a); //вызов функции вывода массива
k = NechNom(a); //вызов функции поиска номеров всех нечетных элементов
Console.WriteLine();
Console.WriteLine("Номера всех нечетных элементов: {0}", k); //вывод результатов
Console.ReadLine();
}
}
}


Код:

rnd.Next(-13, 12);

Console.WriteLine("Программа создает одномерный массив из 12 случайных чисел из диапазона [-13; 13],");

Почему у вас условия и реализация отличаются?

Код:

static double NechNom(int[] a) //функция поиска нечетных номеров

Как вы себе представляете передать набор номеров представить в виде числа с плавающей точкой (double)? Как вы хотели представить набор: 1, 3, 5, 11 в виде double? Поясните пожалуйста.

По методу WriteLine(). Этот метод выводит содержимое в одну строку. Он сам переводит каретку на новую строку. В нем нет необходимости использовать \n, если вы только не хотите принудительно еще раз сделать перевод на новую строку. Почитайте тут.

Код:

Console.WriteLine("Номера всех нечетных элементов: ", k); // такой код работать не будет, т.к. 2 аргумент нигде в строке не использован

Читайте тут.

В функциях нужно добавить проверку на пустой массив:
Код:

if (a == null) throw new ArgumentNullException(nameof(a)); // как пример


Подумайте как еще можно улучшить код. Там есть что сделать...
в сети
Управляющий
143894
2148
23.04.2020, 11:15
общий
Адресаты:
Я удалил дубль.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


Форма ответа