С++ Помощь с заданием, связанное с массивом

#include <cstdio>
#include <clocale>
#include <cmath>
#include <typeinfo>
#include <cstdlib>
using namespace std;
int main()
{
    setlocale(0, "rus");
    int x[20];
    int y[20];
    int z[20];
    int n;
    int j = 0;
    int f = 0;
    printf("Введите кол-во чисел, которые будут находиться в массиве:");
    scanf_s("%d\n", &n);
    for (int r = 0; r < n; r++)
    {
        x[r] = rand();
        if (r % 2 == 0)
        {
            y[f] = x[r];
            f++;
        }
        if (x[r] % 5 == 0)
        {
            z[j] = x[r];
            j++;
        }
    }
    printf("Массив x:\n ");
    for ( int v = 0; v < n; v++)
    {
        printf("%d\n ", x[v]);
    }
    printf("Массив z:\n ");
    for (int v = 0; v < n; v++)
    {
        printf("%d\n ", z[v]);
    }   
    printf("Массив y\n:");
    for (int v = 0; v < n; v++)
    {
        printf("%d\n ", y[v]);
    }
}

Задание: 7. Из целочисленного массива X(N), N≤20, сгенерированного случайным образом, пере-писать в массив Y элементы массива X c нечетными номерами, а в массив Z – элемен-ты массива X, значения которых кратны 5.


Ответы (1 шт):

Автор решения: Zhihar

Ну так вы размеры массивов Y и Z чем измеряли? Переменными f и j - ну так и используйте их, а не переменную n

printf("Массив z:\n ");
for (int v = 0; v < j; v++)
{
    printf("%d\n ", z[v]);
}   
printf("Массив y\n:");
for (int v = 0; v < f; v++)
{
    printf("%d\n ", y[v]);
}

P.S.

кстати за такие переменные в аду отдельный котел заготовлен, а попавший туда еще и вечно разбирает чужой код

P.P.S.

кстати

        z[j] = x[r];
        j++;

можно заменить на

        z[j++] = x[r];
→ Ссылка