Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
//Найти и вывести номер элемента введенного с клавиатуры массива целых чисел,
//для которого сумма разностей со значениями соседних элементов максимальна.
//Для крайних элементов использовать циклическое замыкание.
#include<iostream.h>
#include<math.h>
#include <locale.h>
const int RAZ = 10; //размер массива
typedef int telem; //определение типа элементов массива
typedef telem tmas[RAZ]; //определение типа массива
int nomer(const tmas a, telem &max);
void inputmas(tmas a);
int main()
{tmas a; //массив
int nom; //номер искомого элемента
telem max; //значение максимальной суммы разностей
setlocale(LC_ALL,"Russian");
cout << " В массиве целых чисел найти номер элемента, для которого\n";
cout << " сумма разностей со значениями соседних элементов максимальна\n";
//Ввод исходных данных
inputmas(a);
//Поиск номера элемента
nom = nomer(a, max);
cout << " Искомый номер элемента массива: " << nom;
cout << "\n Значение элемента:" << a[nom] << ", сумма разностей=" << max;
cout << "\n Для завершения нажмите <Enter>";
return 0;
}
int nomer(const tmas a, telem &max)
{telem pr; //текущее значение разности
int imax = 0; //за максимум принимаем первый по счету элемент
max = abs(a[RAZ - 1] - a[0]) + abs(a[1] - a[0]);
for(int i = 1; i < RAZ - 1; i++)
if(max < (pr = abs(a[i-1] - a[i]) + abs(a[i+1] - a[i])))
{imax = i;
max = pr;
}
if(max < (pr = abs(a[0] - a[RAZ - 1]) + abs(a[RAZ - 2] - a[RAZ-1])))
{imax = RAZ - 1;
max = pr;
}
return imax;
}
void inputmas(tmas a)
{cout << "\n Введите в одной строке элементы массива, состоящего из ";
cout << RAZ << " целых чисел,\n и нажмите <Enter>\n";
for(int i = 0; i < RAZ; i++)
cin >> a[i];
}
Дата публикования: 2015-09-18; Прочитано: 190 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!