Работа с одномерными массивами на Си

Задания: 1.Одномерный массив размерностью 10 заполнить случайными четными числами и вывести на экран.

2.Одномерный массив размерностью 10 заполнить случайными нечетными числами и вывести на экран.

3.Одномерный массив размерностью 10 заполнить числами, введенными с клавиатуры, затем положительные числа заменить1, а отрицательные 0 и вывести на экран.

4.Одномерный массив размерностью 100 заполнить последовательно 0 и 1 и вывести на экран.

5.Одномерный массив размерностью 100 заполнить последовательными четными числами (0,2,4,6…) и вывести на экран.

6.Одномерный массив размерностью 100 заполнить последовательными нечетными числами (1,3,5…) и вывести на экран.

Разбираюсь с C++ 2 задания вроде сделал посмотрите что не так 1 задание

2 задание


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

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

Старайтесь избегать i = i + 1 в циклах, лучше написать i += 1 или еще лучше c постфиксным инкрементом - i++

Также у вас есть print. Такой функции вывода текста в консоль не существует в языках C. в С существует printf(...), в С++ же существует функция попроще - cout (console out) а для ввода - cin (console in)

Так же, насколько я вижу, на фотографиях задачи 5 и 6 а не 1 и 2.

Добавлю что пишется return 0 без скобок.

Как то так:

#include <iostream>
#include <ctime>
using namespace std;

void task_1() { // 10 случайных четных чисел
    int *arr = new int[10];
    for (int i = 0; i < 10; i++)
        arr[i] = rand() % 10 * 2;
    cout << "task 1: \n";
    for (int i = 0; i < 10; i++)
        cout << arr[i] << " " << endl;
}

void task_2() { // 10 случайных нечетных чисел
    int *arr = new int[10];
    for (int i = 0; i < 10; i++)
        arr[i] = rand() % 10 * 2 + 1;
    cout << "task 2: \n";
    for (int i = 0; i < 10; i++)
        cout << arr[i] << " " << endl;
}

void task_3() { // замена чисел на 0 и 1
    int *arr = new int[10];
    for (int i = 0; i <= 10; i++) {
        cout << "Enter a number: ";  cin >> arr[i];
    }
    for (int i = 0; i <= 10; i++) {
        if (i < 0)
            arr[i] = 0;
        else if (i > 0)
            arr[i] = 1;
    }
    cout << "task 3: \n";
    for (int i = 0; i < 10; i++)
        cout << arr[i] << " " << endl;
}

void task_4() { // заполнение последовательно 0 и 1 
    int *arr = new int[100];
    for (int i = 0; i < 100; i++) {
        if (i % 2 == 0)
            arr[i] = 0;
        else if (i % 2 != 0)
            arr[i] = 1;
    }
    cout << "task 4: \n";
    for (int i = 0; i <= 100; i++)
        cout << arr[i] << " " << endl;
} 

void task_5() { // заполнение последовательно четными числами
    int *arr = new int[100];
    for (int i = 0; i < 100; i++)
        arr[i] = i*2;
    cout << "task 5: \n";
    for (int i = 0; i < 100; i++) {
        cout << arr[i] << " " << endl;
    }
}

void task_6() { // заполнение последовательно нечетными числами
    int *arr = new int[100];
    for (int i = 0; i < 100; i++)
        arr[i] = i * 2 + 1; 
    cout << "task 6: \n";
    for (int i = 0; i < 100; i++)
        cout << arr[i] << " " << endl;
}

int main() {
    int task;
    cout << "Enter task: (1 - 6): "; cin >> task;
    switch (task) { // добавил switch для удобства
    case 1:
        task_1();
        break;
    case 2:
        task_2();
        break;
    case 3:
        task_3();
        break;
    case 4:
        task_4();
        break;
    case 5:
        task_5();
        break;
    case 6:
        task_6();
        break;
    default:
        printf("There is no %d task in the list!\n Choose another task: ", task);
    }

    system("pause");
    return 0;
}
→ Ссылка