0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 39
1

Найти номера элементов двух заданных массивов меньше заданного числа и из них образовать новый массив

13.02.2019, 17:13. Показов 1187. Ответов 6
Метки нет (Все метки)

Заданы 2 массива X(x1, x2, ..., xn) и Y(y1, y2, ..., yn). Найти номера элементов массивов, для которых |xi-yi| меньше заданного числа A и из них образовать новый массив Z.

Условие полный бред, и я вообще понятия не имею как выполнить это задание. Помогите, прошу(
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2019, 17:13
Ответы с готовыми решениями:

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

Из элементов массивов А (20) и С (20) образовать новый массив
Из элементов массивов А (20) и С (20) образовать новый массив X={a1,c1,a2,c2,...,a20,c20}

Образовать массив из элементов, встречающихся одновременно в двух заданных массивах
Даны два массива. Образовать третий массив из элементов встречающихся в обоих массивах.

Найти минимальную сумму элементов среди трёх массивов,абсолютная величина которых меньше заданного числа P.
Даны три одномерных массива А из 15,В из 20 и C из 10 элементов соответственно.Какой из массивов...

6
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
13.02.2019, 18:12 2
Лучший ответ Сообщение было отмечено yasonzah как решение

Решение

В новый массив записываются элементы первого и второго массива, которые соответствуют данному правилу : abs(x[i] - y[i])<A.
Пример.
Код
cnt : 5
Array a : 
5 1 3 7 9
Array b : 
4 3 2 1 1
A : 3
Array z : 
5 4 1 3 3 2

abs(5-4) < A // запишем в массив z число 5 и рядом число 4
abs(1-3) < A // запишем в массив z число 1 и рядом число 3
abs(3-2) < A // запишем в массив z число 3 и рядом число 2
// Поэтому и имеем следующий массив :
5 4   1 3   3 2
Если я все правильно понял, тогда это решается вот так :
C++
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <ctime>
using namespace std;
 
void RandArray(int cnt, double *arr)
{
    for (int i = 0; i < cnt; i++)
        arr[i] = -10 + rand() % 21;
}
 
void PrintArray(int cnt, double *arr)
{
    for (int i = 0; i < cnt; i++)
        cout << " " << arr[i];
    cout << endl;
}
 
int CountOfElements(int cnt, double *x, double *y, double a)
{
    int count = 0;
    for (int i = 0; i < cnt; i++)
        if (abs(x[i] - y[i]) < a)
            count++;
    return count;
}
 
int main()
{
    srand(time(0));
 
    int cnt; cout << " Enter cnt = "; cin >> cnt;
 
    double *x = new double[cnt];
    double *y = new double[cnt];
 
    RandArray(cnt, x);
    PrintArray(cnt, x);
 
    RandArray(cnt, y);
    PrintArray(cnt, y);
        
    double a; cout << " Enter a = "; cin >> a;
    
    int count = CountOfElements(cnt, x, y, a);
    cout << " count : " << count << endl;
    double *z = new double[count*2];
    int j = 0;
    for (int i = 0; i < cnt; i++) {
        if (abs(x[i] - y[i]) < a) {
            z[j++] = x[i];
            z[j++] = y[i];
        }
    }
 
    PrintArray(count*2, z);
 
    return 0;
}
1
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
13.02.2019, 21:12 3
Цитата Сообщение от yasonzah Посмотреть сообщение
Условие полный бред
очень чёткое условие

Цитата Сообщение от JohnBlack123 Посмотреть сообщение
abs(5-4) < A // запишем в массив z число 5 и рядом число 4
abs(1-3) < A // запишем в массив z число 1 и рядом число 3
abs(3-2) < A // запишем в массив z число 3 и рядом число 2
а может запишем номера ?
Цитата Сообщение от yasonzah Посмотреть сообщение
Найти номера элементов массивов
1
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
13.02.2019, 21:16 4
Цитата Сообщение от Yetty Посмотреть сообщение
а может запишем номера ?
Спасибо ! Но это не принципиально

Просто изменим чуток эту часть кода :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double a; cout << " Enter a = "; cin >> a;
 
    int count = CountOfElements(cnt, x, y, a);
    cout << " count : " << count << endl;
    double *z = new double[count];
    int j = 0;
    for (int i = 0; i < cnt; i++) {
        if (abs(x[i] - y[i]) < a) {
            z[j++] = i;
        }
    }
 
    PrintArray(count, z);
1
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
13.02.2019, 21:18 5
Вот пример работы. Цифры, записанные в массив z - это индексы соответствующих заданию элементов.
Миниатюры
Найти номера элементов двух заданных массивов меньше заданного числа и из них образовать новый массив  
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 39
13.02.2019, 23:48  [ТС] 6
Огромное спасибо! Очень выручили
0
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
14.02.2019, 00:05 7
yasonzah, Вы только единичку накиньте: номер=индекс+1
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2019, 00:05
Помогаю со студенческими работами здесь

Образовать из элементов двух массивов упорядоченный массив размерностью m*n
Заданы два одномерных упорядоченных массива размерно-стью m и n соответственно. Образовать из этих...

Массив: Напечатать те элементы двух заданных массивов, которые у них совпадают.
Заданы массивы А(10) и В(10). Напечатать те элементы, которые у них совпадают

Занести в новый массив элементы, не являющиеся общими для двух заданных массивов
вот полное задание Даны два массива: А и B (M и N вводятся с клавиатуры), которые автоматом...

Массив: Сформировать новый массив из максимальных значений элементов каждого из заданных массивов...
даны четыре одномерных массива A, B, C, D, сформировать новый массив из максимальных значений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru