Работа с одномерными массивами на Си
Задания: 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 шт):
Старайтесь избегать 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;
}
