Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
1

Сделать одномерный массив с использованием указателей

21.09.2014, 20:13. Показов 2923. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти наибольший элемент каждой пары из массива А и записать их в новый массив
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2014, 20:13
Ответы с готовыми решениями:

Преобразовать одномерный массив с использованием указателей
Суть проблемы в следующем: Есть одномерный массив: using System; using...

Создать массив указателей на одномерный массив и через указатели присвоить массиву значения
Не могу понять как работают указатели. Объявляю массив, делаю на него указатель. Циклом с...

Дан двумерный массив, из него сделать одномерный. В одномерный массив сначала вписат четные строки потом нечетные
Здравствуйте,собственно задача в заголовке темы. никак не получается все это дело слит в одномерный...

Упорядочить одномерный массив указателей на строки
Допустим у меня одномерный массив указателей на строки и они имеют как бы еще такие значения. ...

7
Модератор
Эксперт С++
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
21.09.2014, 20:22 2
Организуете цикл по i с шагом 2.
В элемент нового массива с индексом i/2 ( c[i/2] ) записываете max(a[i],a[i+1])
2
4820 / 2286 / 287
Регистрация: 01.03.2013
Сообщений: 5,970
Записей в блоге: 29
21.09.2014, 20:24 3
zss, а указатели когда использовать?
0
Модератор
Эксперт С++
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
21.09.2014, 20:50 4
Цитата Сообщение от _Ivana Посмотреть сообщение
а указатели
вместо a[i] пишете *(a+i)
Вот Вам и указатели.
Для пущей важности создайте массив динамически
C++
1
int* a=new int[N];
0
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
25.09.2014, 13:08  [ТС] 5
нужно программу сделать с указателями и двумя функциями тоесть 1 функция ввод наибольших елементов пары во второй массив 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
include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include<conio.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{ int const n=10;
 int a[n],i,*p;
 p=&a[0];
 cout<<"Vvod elementov a[]\n";
 for(i=0;i<n;i++)
 {
     cout<<"a["<<i<<"]=";
     cin>>*(p+i);
 }
   int max(int b[],int, int);
   int b;
   for(i=0;i=n;i+=2)
    b[(i/2)] = (a[i] > a[i+1] ? a[i] : a[i+1]);
 
   system("pause");
    return 0;
1
Модератор
Эксперт С++
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
25.09.2014, 13:39 6
Лучший ответ Сообщение было отмечено Dgaizer как решение

Решение

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
int max(int a,int b) // найти большее из двух
{
    return a>b?a:b;
}
 
void StoreMax(int* from,int* to,int n) // копирование больших из двух
{
    int* p2=to;
    for(int* p=from;p<from+n;p+=2)
          *(p2++)=max(*p,*(p+1));
}
 
int main(int argc, char* argv[])
{ 
        int n=10;
        int* a=new int[n];
        cout<<"Vvod elementov a[]\n";
        for(int*p=a;p<a+n;p++)
       {
                cout<<"a["<<int(p-a)<<"]=";
               cin>>*p;
       }
        int*b=new int[n/2];
       StoreMax(a,b,n);
        cout<<"Vyvod b\n";
        for(int*p=b;p<b+n/2;p++)
       {
                cout<<*p<<" ";
       }
       cout<<endl;
       system("pause");
       return 0;
}
1
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
27.09.2014, 18:06  [ТС] 7
zss, скажите пожалуйста в этой строке что происходит
C++
1
 *(p2++)=max(*p,*(p+1));
C++
1
 int* a=new int[n];
0
Модератор
Эксперт С++
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
27.09.2014, 18:52 8
Цитата Сообщение от Dgaizer Посмотреть сообщение
*(p2++)=max(*p,*(p+1));
находится большее из *p и *(p+1), присваивается *p2, после чего
указатель p2 переходит к следующему адресу (++).
*(p) - операция разименования (содержимое ячейки, адрес которой p).

Цитата Сообщение от Dgaizer Посмотреть сообщение
int* a=new int[n];
Выделение памяти под целочисленный массив длиной n.
1
27.09.2014, 18:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2014, 18:52
Помогаю со студенческими работами здесь

Задать одномерный массив с помощью указателей
задать одномерный массив с помощью указателей))

Задачка. массив указателей на одномерный массив
Привет всем. Помогите, пожалуйста. Два дня мучился, писал, оказалось, что писал совсем не то, что...

Динамический массив с использованием указателей
Дан двумерный массив целых чисел размером , где m и n – заданные натуральные числа. Если в массиве...

Задача на двумерный массив с использованием указателей
В двумерном массиве найти строку с наименьшим произведением элементов. Размерность массива 5x6....

Как отсортировать одномерный динамический массив с помощью указателей?
Как отсортировать одномерный динамический массив с помощью указателей?

Функция: заполнить массив случайными значениями (с использованием указателей)
подскажите. есть вот такая задача Написать ф-цию fill, которая принимает указатель на массив и...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru