Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Перестановка наибольшего и наименьшего


Автор: greenday 1.5.2007, 12:36
День добрый, господа. Сразу прошу меня извинить, ибо вопрос мой очень простой.
Нужно в одномерном массиве наибольший и наименьший элемент поменять местами.
Помогите пожалуйста! 

Автор: SparF 1.5.2007, 12:46
- проход в цикле по массиву:
    - если "текущий элемент" меньше "минимального", 
               то "минимальным" становится элемент с индексом текущего
    - если "текущий элемент" больше "максимального", 
               то "максимальным" становится элемент с индексом текущего
(после этого цикла мы знаем индексы минимального и максимального элементов)
- присвоить "временной переменной" значение "минимального" элемента;
- присвоить элементу с "индексом минимального" элемента значение "максимального" элемента
- присвоить элементу с "индексом максимального" элемента значение "временной переменной"

Автор: Rockie 1.5.2007, 17:10
greenday, ясзык Си, я полагаю
Код

#include <stdio.h>

#define N 10        

int main(){
 int a[N] = {4,2,3,11,5,7,6,8,15,7};
 int i, min = a[0], max= a[0], pmin = 0, pmax = 0;

 for(i=1;i<N;i++)
 {
     if(a[i]<min) { min = a[i]; pmin = i; }
     if(a[i]>max) { max = a[i]; pmax = i; }
 }

 int temp = a[pmin]; a[pmin] = a[pmax]; a[pmax] = temp; 

 for(i=0;i<N;i++)
   printf("%d ", a[i]);

 return 0;
}


После всеразрушающего замечания Dov выкладываю второй релиз, так сказать  smile 


Автор: Dov 1.5.2007, 17:49
Цитата(Rockie @  1.5.2007,  17:10 Найти цитируемый пост)

for(i=1;i<N;i++)
{
    if(a[i]<min) min = i;
    if(a[i]>max) max = i;
}

 smile  smile  smile 

Rockie, твою шутку оценил, но больше так не шути.  smile 

Автор: Rockie 1.5.2007, 18:43
Dov, Dov, что бы я без тебя делал smile


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)