8-3r
Дан массив. Найти максимальный элемент.
Нахождение максимального элемента – одно их часто повторяющихся действий в программировании. Поэтому идею этого алгоритма надо знать безукоризненно и уметь реализовать в различных задачах.
Предположим вы попали в большой яблочный сад в период уборки урожая. Конечно, вы уже хорошо поработали и сели около большого, наполненного яблоками ящика, он у вас слева. А справа - пустой ящик. И вот вы решили выбрать в левом ящике самое большое яблоко (по весу). Ну не высыпать же на землю все яблоки. Вы берете первое яблоко и кладете его перед собой на стол. А затем, пока левый ящик не опустеет, вы будете выполнять одни и те же действия:
1. взять яблоко из левого ящика.
2. если оно меньше яблока, которое лежит на столе, то положить его в правый ящик, иначе (то есть оно больше) заменить яблоко, лежащее на столе, новым яблоком, а старое яблоко отправить в левый ящик.
3. В самом конце, когда левый ящик будет пустым, на столе перед вами будет красоваться самое большое яблоко. Кушайте его на здоровье.
Это алгоритм мы и осуществили в нашей программе.
а) берем первый элемент и делаем его максимальным – строка 8.
b) Перебираем все оставшиеся элементы (строка 9) и каждый элемент сравниваем с максимальным, если он больше максимального, то заменяем максимальный этим новым элементом – строка 10.
c) В конце в maxa окажется самый максимальный элемент.
1234567891011121314 |
Const n=10; a:array [0..n-1] of integer= (6,-5,1,4,2,7,4,2,1,-5); Var i,maxa:integer; BEGIN maxa:=a[0]; for i:=1 to n-1 do if (a[i]>maxa) then maxa:=a[i]; writeln(maxa); readln;END. |
#include <iostream> using namespace std; int main(){ int a[10]={6,-5,1,4,2,7,4,2,1,-5}; int n=sizeof(a)/sizeof(int); int i,maxa=a[0]; for(i=1;i<n;i++) if(a[i]>maxa) maxa=a[i]; cout<<maxa<<endl;; return 0;} |