Как сделать это назначение? (Создание 1 массива, создание 2 других массивов с использованием первого массива, затем их отображение) - PullRequest
0 голосов
/ 04 октября 2019

Я понял, что несколько других людей опубликовали этот же вопрос, но у нас были разные коды, поэтому я просто задаю новый вопрос ...

"Напишите программу, которая генерирует 100 случайных целых чисел в диапазоне 1до 100, и сохраняет их в массиве. Затем программа должна вызвать метод класса, который извлекает числа, кратные 4, в массив и возвращает массив. Затем программа должна вызвать другой метод, который извлекает числа, которые являютсядаже не умножается на 4 в отдельный массив и возвращает массив. Затем должны отображаться оба массива "

Я читал мой учебник, в котором говорилось о создании другого массива с именем return, но ни один из примеров не использует технику ии другие коды.

***** Я не вставил весь код, потому что он не подходит (я думаю)

public static int eMOF(int[] randomNumbers)
{
    int[] eMOFArray = new int[100];


    int i = 1;

    for (int x : randomNumbers)
    {
        if ( (x / 4) % 2 == 0)
        {       
            eMOFArray[i] = x;
            i = i++;
        }
    }


    return eMOFArray;

}


public static int oMOF(int[] randomNumbers)
{
    int[] oMOFArray = new int[100];

    int i = 1;

    for (int x : randomNumbers)
    {
        if ( x / 4 == 0 & ( x / 4 ) % 2 != 0)
        {   
            oMOFArray[i] = x;
            i = i++;

        }   
    }



    return oMOFArray;

}

}

он должен отображать 2 массива, один с четным числом, кратным четырем, и один с нечетным числом, равным четырем. Вместо этого он не компилируется, и появляется сообщение об ошибке

error: несовместимые типы: int [] не может быть преобразовано в int

  • , также можете проверить мою логику, пожалуйста? я боюсь

1 Ответ

0 голосов
/ 04 октября 2019

Тип возвращаемого значения должен быть int [] вместо int, когда вы возвращаете массив.

Индекс возвращаемого массива (eMOF или oMOF). Мне следует начинать с нуля как индексМассив начинается с нуля.

Если говорить о логике, то для обоих методов первоначально каждый элемент должен проверяться, если он кратен четырем, а затем даже кратен или нечетно кратен.

Чтобы проверить, является личетное число, кратное четырем: x% 4 == 0 && (x / 4)% 2 == 0 x% 4 == 0 проверяет, является ли элемент кратным 4, и (x / 4)% 2 == 0 проверяет,элемент даже кратен четырем.

«%» дает остаток, где «/» дает частное.

public static int[] eMOF(int[] randomNumbers)
{
    int[] eMOFArray = new int[100];
    int i = 0;
    for (int x : randomNumbers)
    {
        if ( x % 4 == 0 && ( x / 4 ) % 2 == 0)
        {       
            eMOFArray[i++] = x;
        }
    }
    return eMOFArray;
}


public static int[] oMOF(int[] randomNumbers)
{
    int[] oMOFArray = new int[100];
    int i = 0;
    for (int x : randomNumbers)
    {
        if ( x % 4 == 0 && ( x / 4 ) % 2 != 0)
        {   
            oMOFArray[i++] = x;
        }   
    }
    return oMOFArray;
}
...