Форум программистов, компьютерный форум CyberForum.ru

Найти наибольший элемент каждой пары из массива А и записать их в новый массив - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 15:18     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #1
Найти наибольший элемент каждой пары из массива А и записать их в новый массив. Получить из него массив четных положительных чисел
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 15:18     Найти наибольший элемент каждой пары из массива А и записать их в новый массив
Посмотрите здесь:

C++ найти первый положительный элемент и записать данные в новый массив
Для каждого столбца найти первый положительный элемент и записать данные в новый массив C++
C++ Найти наибольший элемент массива в каждой строке.
C++ Найти наибольший элемент двумерного массива в каждой его строке
Сгенерировать массив из 30 чисел в интервале 1 до 100. Найти ВТОРОЙ наибольший элемент массива. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 15:41     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #2
mraZzzb, а в чем проблема то?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int size = 10;
int *a = new int[size], *b = new int[(int)size/2], *c = new int[(int)size/2], k = 0;
for (int i = 0; i < size; i += 2)
    b[(int)i/2] = (a[i] > a[i+1] ? a[i] : a[i+1]);
for (int i = 0; i < size/2; i++)
    if (b[i] > 0 && b[i] % 2 == 0)
        c[k++] = b[i];
for (int i = 0; i < k; i++)
    cout << "Result: " << c[i] << " ";
cout << endl;
delete []a;
delete []b;
delete []c;
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 16:02  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #3
Спасибо конечно, но здесь многое не понятно..
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 16:18     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #4
mraZzzb, если проблемы с алгоритмом, то вот...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int size = 10; // Размер оригинального массива
int *a = new int[size], *b = new int[(int)size/2], *c = new int[(int)size/2], k = 0; // Создаем 3 динамических массива, 1 размером size, остальные в 2 раза меньше и k - счетчик кол-ва элементов в 3 массиве
for (int i = 0; i < size; i += 2)
    b[(int)i/2] = (a[i] > a[i+1] ? a[i] : a[i+1]); // Записываем в ячейку массива b наибольшие из пар чисел массива а
for (int i = 0; i < (int)size/2; i++) // В цикле проходим массив b
    if (b[i] > 0 && b[i] % 2 == 0) // Если значение больше нуля и при делении на 2 дает остаток 0, то дописываем его в массив с
        c[k++] = b[i];
for (int i = 0; i < k; i++) // Выводим окончательный массив с
    cout << "Result: " << c[i] << " ";
cout << endl;
delete []a; // Освобождаем память
delete []b;
delete []c;
Если проблемы со знанием языка, то тут простите, вам в сторону учебников и статей по С/С++
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 16:25  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #5
У меня много вопросов, не охота напрягать но все же..
1. Почему назвали size?
2. *a = new int[size], *b = new int[(int...... Зачем перед буквами *
3. Для чего стоит вопросительный знак в 4 строке и что означает эта строка "a[i] : a[i+1]" ?
На самом деле это не все вопросы, долго перечислять..(
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 16:32     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #6
mraZzzb, без проблем, отвечу:
1. size - мне так вздумалось назвать переменную, которая обозначала бы размер оригинального массива (с данными для обработки)
2. *a это не переменная типа int, а указатель на тип int. Указатели как раз выделяются звездочками. a, b, c указывают на участки памяти, выделенные под массивы указанных размеров.
3. вопросительный знак это... унарный оператор или что то там такое. В общем это схожая с if конструкция ( <условие> ? <действие, если условие выполнилось> : <если не выполнилось> )
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 16:38  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #7
Ну теперь понятней, но мы такого не проходили, не знаю даже какой пример показать ,в общем скорее всего не в таком виде нужно..
TenGen
28.04.2014, 16:46
  #8

Не по теме:

mraZzzb, а что вы проходили? Во всяком случае, С++ он вот такой, без разницы, какая IDE: Borland, Visual или еще что то. А уж если преподаватель не давал вам такого, то у вас будет лишний повод возвыситься в его глазах, получить 10 очков репутации и право носить малиновые штаны

mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 16:50  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #9
Вот здесь пример есть
Вложения
Тип файла: docx Laboratornaya_rabota_Si_5.docx (25.7 Кб, 6 просмотров)
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 16:55     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #10
mraZzzb, у вас тут используется синтаксис С, это раз. И у вас используются статические массивы, что, имхо, не гуд - это два.
Мы все таки с вами пользуемся С++. Преподаватель просто не имеет права возмущаться насчет чего либо
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 16:59  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #11
Будет она возмущаться или нет это не важно) Просто так привычней, и охота реализовать программу в таком же виде, но это у меня не получается..
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 17:02     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #12
mraZzzb, хорошо, буду дома, напишу вам программу на чистом С
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 17:05  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #13
Спасибо, буду ждать!!
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
28.04.2014, 17:54     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #14
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
const int size=4;
int massiv1[size], massiv2[size/2],massiv3[size/2];
#include <stdio.h>
#include <conio.h>
void main(void)
{
int kolvo_chet=0;
for (int i=0;i<size;i++)
scanf("%d",&massiv1[i]);
for (int i=0;i<size;i=i+2)
{
if (massiv1[i]>massiv1[i+1]) massiv2[i/2]=massiv1[i];
else massiv2[i/2]=massiv1[i+1];
if ((massiv2[i/2]%2)==0 && massiv2[i/2]>=0)
{
massiv3[kolvo_chet]=massiv2[i/2];
kolvo_chet++;
}
}
for (int  i=0;i<size;i++)
{
    printf("%d ",massiv1[i]);
}
printf("\n");
for (int  i=0;i<size/2;i++)
{
    printf("%d ",massiv2[i]);
}
printf("\n");
if (kolvo_chet>0)
for (int  i=0;i<kolvo_chet;i++)
{
    printf("%d ",massiv3[i]);
}
else
printf ("v 3 massive nichego net");
getch();
}
А если так?
DrOffset
6426 / 3800 / 880
Регистрация: 30.01.2014
Сообщений: 6,594
28.04.2014, 18:07     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #15
Цитата Сообщение от TenGen Посмотреть сообщение
вопросительный знак это... унарный оператор или что то там такое
Тернарный - значит три аргумента.
Бинарный - два аргумента.
Унарный - один аргумент.
? : - это тернарный оператор
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 19:45     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #16
DrOffset, благодарю за уточнение

Добавлено через 39 минут
mraZzzb, вот реализация на С, с динамическими массивами

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
#include <stdio.h>
 
int main(void)
{
    int i, *a, *b, count_a, count_b = 0;
    printf("Input size of array:");
    scanf("%i", &count_a);
    count_a -= count_a%2;
    a = (int*)calloc(count_a, sizeof(int));
    b = (int*)calloc((int)(count_a/2), sizeof(int));
    for (i = 0; i < count_a; i++)
    {
        printf("Input %i number:", i);
        scanf("%i", &a[i]);
    }
    for (i = 0; i < count_a; i+=2)
    {
        int tmp = (a[i] > a[i+1] ? a[i] : a[i+1]);
        if (tmp > 0 && tmp%2 == 0) b[count_b++] = tmp;
    }
    printf("Array: ");
    for (i = 0; i < count_b; i++)
        printf("%i ", b[i]);
    free(a);
    free(b);
    return 0;
}
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 19:50  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #17
Это что-то еще хлеще...
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 19:53     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #18
mraZzzb, что опять то не так?
mraZzzb
22 / 22 / 0
Регистрация: 06.04.2014
Сообщений: 135
28.04.2014, 20:18  [ТС]     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #19
Ладно вот еще пример из лекции:
Дан массив из N целых чисел. Найти его минимальное (или максимальное, разобрать почерк не могу) число и его порядковый номер.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
#define N 20
int main()
{int i, A[i], max, pn;
for (i=0;i<N;i++)
{cout<<"A[i]";
cin>>A[i];}
max=A[0];
pn=0;
for(i=1;i<N;i++)
{cout<<A[i];
if (A[i]>max)
{max=A[i];
pn=i;}
}
cout<<endl<<"max="<<max;
cout<<endl<<"pn="<<pn;
retunrn 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 20:25     Найти наибольший элемент каждой пары из массива А и записать их в новый массив
Еще ссылки по теме:

Дан массив A[20] и B[10] после каждой пары элемента массива A вставить один элемент массива B C++
C++ Товарисчи объясните пожалуйста как сделать данную задачу! (Найти наибольший элемент каждой строки А(4,6) и записать их в массив Y)
Одномерный массив. Найти наибольший элемент массива и поменять его местами с наименьшим элементом C++

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

Или воспользуйтесь поиском по форуму:
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 20:25     Найти наибольший элемент каждой пары из массива А и записать их в новый массив #20
mraZzzb, у вас в лекции мешанина какая то. То cout, то printf. Или вам динамические массивы не нравятся?
Yandex
Объявления
28.04.2014, 20:25     Найти наибольший элемент каждой пары из массива А и записать их в новый массив
Ответ Создать тему
Опции темы

Текущее время: 16:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru