Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Roguen
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 7
#1

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++

23.03.2013, 15:11. Просмотров 1196. Ответов 1
Метки нет (Все метки)

Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами. Осуществить циклический сдвиг элементов элементов влево на k позиций, где k – число элементов расположенных между его минимальным и максимальным значением.

Нужно это сделать с помощью указателей и индексов, с помощью индексов я сделал, а с помощью указателей не получается

Код
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#define n 10

int main()
{
srand(time(NULL));
int mass[n],i,*min,*max,nmin,nmax,temp,x,j ;

	for (i=0;i<n;i++)
	{mass[i]=20+rand()%100-6;}

min=&mass[0];
max=&mass[9];

printf("\n\nishodnyi massi\n\n");

	for (i=0;i<n;i++)
	{printf(" [%d] ",*min++);}
	printf("\n\n");
min=&mass[0];

	for(i=0;i<n;i++)
    {
    min++;
    if(mass[i]<*min)
    {min=&mass[i];}
    else if (mass[i]>*max)
    {max=&mass[i];}
    }

printf("max=%d, min=%d",nmax,nmin);

if (max>min)
{x=max-min;
	for(i=0;i<(x/2);i++)
		{temp=*max;
		*max=*min;
		*min=temp;
		min++;
		max--;
		}
}


else
{
    x=min-max;
	for (i=0;i<(x/2);i++)
		{temp=*min;
		*min=*max;
		*max=temp;
		min--;
		max++;
		}
}

min=&mass[0];

printf("\n\nObrabotannyi massiv\n\n");
	for (i=0;i<n;i++)
	{printf(" [%d] ",*min++);}

printf("\n\nSdvig massiva vlevo na %d pozicii\n\n",x);

for(i=0;i<x;i++)
	{temp=*min;
		for(j=0;j<n-1;j++)
		{*min=*min++;
		*min++=temp;
		}
	}

for (i=0;i<n;i++)
{printf(" [%d] ",*min++);}

getch();
return(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами (C++):

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами....

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++
Доброго времени суток,есть задача которую мне необходимо решить, однако я не имею представления как ее решать(я нуб) так что прошу о...

Как переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++
Подскажите как реализовать перестановку элементов массива в заданом промежутке? Минимум и максимум массива я нашел, а как переставить...

Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами....

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами - C++
Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами. Прошу...

Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между максимальным из отрицательных и минимальным элементами - C++
Ввести одномерный массив А , вывести его. Переставить в обратном порядке все элементы между максимальным из отрицательных и минимальным...

1
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.03.2013, 23:58 #2
Roguen, вот небольшой пример, посмотри, думаю вопрос не окажется, если что, пиши)

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
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void create_mas(int *_mas, const int _size)
{
    for(int i = 0; i < _size; i++, _mas++)
        *_mas = i + 1;
}
 
void print_mas(const int *_mas, const int _size)
{
    for(int i = 0; i < _size; i++, _mas++)
        cout << *_mas << ' ';
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));            
    wcin.imbue(locale(".866"));             
 
    int size = 10;
    int *mas = new int[size];
 
    //инициализируем массив
    create_mas(mas, size);
 
    //выводим массив
    print_mas(mas, size);
 
    delete []mas;
 
    cout << "\n\n";
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 23:58
Привет! Вот еще темы с ответами:

Переставить в обратном порядке элементы массива, расположенные между элементами AK и AL включительно - C++
Mассив A размер N числа K и L (1 ≤ K &lt; L ≤ N). Переставить в обратном порядке, расположенные между элементами AK и AL, включая эти...

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами - C++
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным элементами (не включая мини-мальный и...

Элементы массива, расположенные между его минимальным и максимальным элементами (не включая минимальный и макс - C++
Здравствуйте,есть задача которую я не имею представления как ее решать(я нуб).Поэтому, прошу о помощи(если не составит труда то в коде...

Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным элементами - C++
помогите! ! ! работу нужно сделать в С++


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru