КАТЕГОРИИ: Архитектура-(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; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |