В массиве Х(40) определить положение и размер первой серии
положительных элементов, в состав которой входит не менее трех элементов.
Серия – это группа подряд идущих элементов одного типа. Сформировать
массив Y из отрицательных элементов массива Х.
C/C++
C++ Обработка одномерных массивов.
#include
#include
#include
using namespace std;
void fill_random(int* box, const size_t n, int a, int b) {
if (a > b) swap(a, b);
uniform_int_distribution uid(a, b);
mt19937 gen{ random_device()() };
for (size_t i = 0; i < n; ++i) box[i] = uid(gen);
}
void show(int* box, size_t n, const streamsize w, const size_t lf) {
for (size_t i = 0; i < n; ++i) {
if (i && i % lf == 0) puts("");
cout 0) ++i;
auto stop = i;
auto diff = stop - start;
if (m
#include //for cout
#include //for time
#include //for rand
#include //for puts
#define INT //define type arrays - int, undefine - float
constexpr size_t size = 40;
#ifdef INT
#define type int
#else
#define type float
#endif
size_t negates(type* l, type* r) //copy negative to r
{
size_t r_size = 0;
for (size_t i = 0; i < size; i++) if (l[i] < 0) r[r_size++] = l[i];
return r_size;
}
size_t find_trio(type* l) //find pozitive trio
{
for (size_t cnt = 0, i = 0; i < size; i++)
{
l[i] > 0 ? cnt++ : cnt = 0;
if (cnt == 3) return i - 2;
}
return size;
}
void print(type* l, size_t l_size) //print array
{
for (size_t i = 0; i < l_size; i++) std::cout
int arr[40]= {1,2,-3,4,-5,6,7,-8,-9,10,-11,12,13,-14,15,16,17,-18,19,20,
21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40};
////////////////////////////
int i= 0; int cnt=0; //счётчик и отрицательных количество
for (int r=0; r<4; r++)
{
for (int c=0; c<10; c++) { if (arr[i]<0) cnt++;
cout << arr[i] << '\t'; i++; }
cout << endl;
}
////////////////////////////
i= 0; int SzPos= 0; //счётчик элементов = 0 и размер последовательности = 0
do
{
if (arr[i] > 0) { SzPos++; }
else { if (SzPos>2) break;
SzPos= 0; }
i++;
}while (i<40);
cout << "Первая последовательность из 3-х и более положительных" << endl;
cout << "элементов начинается с позиции " << (i-SzPos) << endl;
cout << "Её размер равен " << SzPos << endl;
////////////////////////////
int *arrNeg= new int[cnt]; cnt= 0;
for (i=0; i<40; i++)
{
if (arr[i]<0) { arrNeg[cnt]= arr[i]; cnt++; }
}
////////////////////////////
cout << "Отрицательные элементы" << endl;
for (i=0; i<cnt; i++)
{
cout << arrNeg[i] << '\t';
}
////////////////////////////
delete [] arrNeg;
21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40};
////////////////////////////
int i= 0; int cnt=0; //счётчик и отрицательных количество
for (int r=0; r<4; r++)
{
for (int c=0; c<10; c++) { if (arr[i]<0) cnt++;
cout << arr[i] << '\t'; i++; }
cout << endl;
}
////////////////////////////
i= 0; int SzPos= 0; //счётчик элементов = 0 и размер последовательности = 0
do
{
if (arr[i] > 0) { SzPos++; }
else { if (SzPos>2) break;
SzPos= 0; }
i++;
}while (i<40);
cout << "Первая последовательность из 3-х и более положительных" << endl;
cout << "элементов начинается с позиции " << (i-SzPos) << endl;
cout << "Её размер равен " << SzPos << endl;
////////////////////////////
int *arrNeg= new int[cnt]; cnt= 0;
for (i=0; i<40; i++)
{
if (arr[i]<0) { arrNeg[cnt]= arr[i]; cnt++; }
}
////////////////////////////
cout << "Отрицательные элементы" << endl;
for (i=0; i<cnt; i++)
{
cout << arrNeg[i] << '\t';
}
////////////////////////////
delete [] arrNeg;
Казума Ягами
проверяй сам, но не кидая камень в огород чужой, думаю краткость сестра таланта и из такого кода складываются библиотеки для разного рода питонов и прочих хитромудрых языковых процедур и функционала в принципе. Если будут ошибки при тестировании - пиши. Самому интересно ))
#include
using namespace std;
//Вывод массива
void outPut(int arr[])
{
for (int i = 0; i < 40; i++)
{
cout = 3) //Серия должна быть больше 3
{
return posit;
}
else
{
break;
}
}
}
}
}
return 0;
}
//Формирует массив из отрицательных элементов массива X
void neg(int* arr, int X[])
{
int lengthNeg = 0; //Количество отрицательных элементов
for (int i = 0; i < 40; i++)
{
if (X[i] < 0)
{
++lengthNeg;
}
}
if (lengthNeg == 0) //Количество не должно быть равным нулю иначе там нет отрицательных элементов
{
cout
Похожие вопросы
- Обработка одномерных массивов в функциях
- C++\Работа с одномерными массивами: удаление, добавление, перестановка, поиск
- Нужна помощь в составлении одномерных массивов С++
- Одномерные массивы. Сортировка
- В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива
- Написать программу «справочник». Создать два одномерных массива. Один массив хранит номера мобильных телефонов, второй
- Написать код на С++ в одномерном массиве
- Составить программу для обработки одномерных статических массивов.
- Одномерные массивы на языке си
- Написать программу на С++ с применением одномерных массивов, используя указатели.