Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример программы на обработку одномерного массива




 

//Найти и вывести номер элемента введенного с клавиатуры массива целых чисел,

//для которого сумма разностей со значениями соседних элементов максимальна.

//Для крайних элементов использовать циклическое замыкание.

#include<iostream.h>

#include<conio.h>

#include<string.h>

#include<math.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; //значение максимальной суммы разностей

clrscr();

cout << " В массиве целых чисел найти номер элемента, для которого\n";

cout << " сумма разностей со значениями соседних элементов максимальна\n";

//Ввод исходных данных

inputmas(a);

//Поиск номера элемента

nom = nomer(a, max);

cout << " Искомый номер элемента массива: " << nom;

cout << "\n Значение элемента:" << a[nom] << ", сумма разностей=" << max;

cout << "\n Для завершения нажмите <Enter>";

getch();

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];

}

 

Пример программы на обработку двумерного массива (матрицы)

 

//Программа находит строку введенного с клавиатуры двумерного массива целых

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

#include<iostream.h>

#include<conio.h>

const int RAZ = 10; //максимальный размер для каждого измерения массива

typedef int telem; //определение типа элементов массива

typedef telem tmatr[RAZ][RAZ]; //определение типа массива

void inputmatr(tmatr a, int &str, int &sto);

telem poisk_str(tmatr a, int str, int sto, int &imax);

 

int main()

{tmatr a; //двумерный массив

int imax; //номер строки с максимальной суммой значений элементов

telem max; //максимальная сумма значений элементов

int str; //число строк матрицы

int sto; //число столбцов матрицы

clrscr();

inputmatr(a, str, sto);

max = poisk_str(a, str, sto, imax);

cout << " Максимальная сумма=" << max << " значений элементов строки\n";

cout << " содержится в " << imax << "-й строке исходного массива\n";

cout << " Для завершения нажмите <Enter>";

getch();

return 0;

}

 

void inputmatr(tmatr a, int &str, int &sto)

{cout << " Введите число строк в массиве <= " << RAZ << " ";

cin >> str;

cout << " Введите число столбцов в массиве <= " << RAZ << " ";

cin >> sto;

cout << " Введите построчно через пробел значения элементов\n";

cout << " двумерного массива размера " << str << "x" << sto;

cout << "\n После ввода каждой строки нажимайте <Enter>\n";

for(int i = 0; i < str; i++)

for(int j = 0; j < sto; j++)

cin >> a[i][j];

}

 

telem poisk_str(tmatr a, int str, int sto, int &imax)

{telem max, //максимальная сумма элементов строки

pr; //текущая сумма

imax = 0; //предполагаем, что максимальная сумма элементов в 0-ой строке

max = 0;

for(int j = 0; j < sto; j++)

max += a[0][j];

for(int i = 1; i < str; i++)

{pr = 0;

for(j = 0; j < sto; j++)

pr += a[i][j];

if(max < pr)

{imax = i;

max = pr;

}

}

return max;

}


 




Поделиться с друзьями:


Дата добавления: 2014-10-22; Просмотров: 382; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.