Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: C++ поменять местами min и max элементы массива
СообщениеДобавлено: 07 янв 2014, 18:45 
Не в сети
Мастер
Зарегистрирован:
17 ноя 2013, 12:34
Сообщений: 224
Cпасибо сказано: 21
Спасибо получено:
1 раз в 1 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Создать функцию,которая находит минимальные и максимальные элементы одномерного массива,их индексы и меняет элементы местами.
Не пойму,что не так.Даже массив выводится неправильно:(Делала по статьям в интернете.Помогите,скажите,что неправильно

#include <cstdlib>
#include <iostream>

using namespace std;
int fun(int*arr,int n)
{

int max=arr[0];
int imax=0;
int min=arr[0];
int imin=0;
for(int i=1;i<n;++i)
{
if(arr[i]>max)
{ max=arr[i];
cout<<"max= "<<max;
}
if(arr[i]>arr[imax])
imax=i;

}
for(int j=1;j<n;++j)
{
if(arr[j]<min)
{min=arr[j];
cout<<"min= "<<min;
}
if(arr[j]<arr[imin])
imin=j;
}
int tmp;
tmp=arr[imin];
arr[imin]=arr[imax];
arr[imax]=tmp;

cout<<arr[n]<<endl;
return max;
return min;
return imin;
return imax;

}
int main()
{
int n;
cout<<"Vvedite n: "<<endl;
cin>>n;
int*p;
p=new int[n];


for(int i=0;i<n;++i)
{
p[i]=rand()%10;
}
cout<<p[n] <<"\n";

cout<<fun(p,n);
delete[]p;
system("PAUSE");
return 0;
}

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Функция2
СообщениеДобавлено: 07 янв 2014, 19:43 
Не в сети
Администратор
Аватара пользователя
Зарегистрирован:
23 фев 2010, 22:52
Сообщений: 6003
Cпасибо сказано: 3247
Спасибо получено:
3150 раз в 2273 сообщениях
Очков репутации: 652

Добавить очки репутацииУменьшить очки репутации
tan_tan, в Вашем решение много чего неверно.

Например, так

#include <iostream>
using namespace std;

template <typename T>
int ReverseMinMax(T *arr, const int n)
{
cout << "Входной числовой массив:\n\n";
for (int i = 0; i < n; i++) cout << " " << arr[i];

int min = 0, max = 0;

for (int i = 1; i < n; i++)
{ if (arr[i] < arr[min]) min = i;
if (arr[i] > arr[max]) max = i;
}

cout << "\n\nМинимальный элемент: " << arr[min] << "; его индекс: " << min
<< "\nМаксимальный элемент: " << arr[max] << "; его индекс: " << max;

T temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;

cout << "\n\nМассив с поменянными местами мин и макс элементов:\n\n";
for (int i = 0; i < n; i++) cout << " " << arr[i];

cout << endl;
return 0;
}

int main()
{
setlocale(0,"rus");

int arr[] = {2,3,-7,1,8,5,0,11,1}, n = 9;

ReverseMinMax(arr, n);

system("pause > null");
return 0;
}

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 2 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Поменять местами элементы массива - C++

в форуме Информатика и Компьютерные науки

kgkfdgfk

1

701

25 окт 2016, 15:08

Индекс массива является не допустимым для этого массива

в форуме MathCad

artem_naumenko

9

695

04 янв 2022, 19:38

Set partition без права перестановки местами

в форуме Информатика и Компьютерные науки

Aist-w

0

245

07 май 2017, 11:57

Почему в первом числа меняются местами а во втором нет?

в форуме Алгебра

yanagichan

0

61

19 июн 2023, 15:02

Почему в первом числа меняются местами а во втором нет?

в форуме Алгебра

yanagichan

2

294

19 июн 2023, 14:59

Как поменять ник

в форуме Предложения, Замечания, Обратная связь

Math_girl

2

595

11 май 2017, 12:22

Поменять порядок интегрирования

в форуме Интегральное исчисление

Nemtsevatat

3

305

20 июл 2017, 17:17

Поменять порядок интегрирования

в форуме Интегральное исчисление

kicultanya

1

336

06 окт 2018, 18:06

Поменять порядок интегрирования

в форуме Интегральное исчисление

kicultanya

4

283

02 окт 2018, 18:47

Поменять пределы интегрирования

в форуме Интегральное исчисление

Qller

6

580

14 ноя 2017, 00:43


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved