Задача 4 Урок 15
Primary tabs
Пользователь вводит массив целых чисел из 7 элементов. Найдите из них два самых больших числа и выведите их на экран.
var a : array [1..7] of integer;
i, b, c,k : integer;
begin
for i := 1 to 7 do
begin
writeln('vvedi chislo');
readln(b);
a[i] := b;
end;
c := a[1];
k := a[1];
for i := low(a) to high(a) do
begin
if(a[i]>=(c)) then
begin
k := c;
c := a[i];
end;
end;
writeln('max1 = ', c);
writeln('max2 = ', k);
readln();
end.
- Log in to post comments
- 6693 reads
vedro-compota
Sun, 08/08/2021 - 13:16
Permalink
var a : array [1..3] of
-- проверить
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sun, 08/08/2021 - 22:38
Permalink
RE
var a : array [1..7] of integer; i, b, c, k : integer; t:boolean; begin for i := 1 to 7 do begin writeln('vvedi chislo'); readln(b); a[i] := b; end; t := true; c := 0; k := 0; for i := low(a) to high(a) do begin if((a[i] >= c) and (a[i] >= k)) then begin if(c>k) then k := a[i] else c := a[i]; end else if((a[i] >= c) and (t = true)) then begin c := a[i]; t:= false; end else if(a[i] >= k) then begin k := a[i]; t:= true; end; end; writeln('max1 = ', c); writeln('max2 = ', k); readln(); end.vedro-compota
Sun, 08/29/2021 - 13:23
Permalink
1)
1)
-- а если в массиве отрицательные?
2)
решить без флага
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Sun, 09/05/2021 - 10:42
Permalink
RE
var a : array [1..7] of integer; i, b, c, k : integer; begin for i := 1 to 7 do begin writeln('vvedi chislo'); readln(b); a[i] := b; end; c := a[1]; k := a[2]; for i := low(a) to high(a) do begin if((a[i] > k) and (a[i] > c) )then c := a[i] else if((a[i] > k) and (a[i] < c) )then k := a[i]; end; writeln('max1 = ', c); writeln('max2 = ', k); readln(); end.результат
vedro-compota
Sun, 09/05/2021 - 13:22
Permalink
c := a[1];
определиться кто больше изначально.
Рекомендую для имен переменных использовать max1 и max2
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Mon, 09/06/2021 - 17:46
Permalink
RE
var a : array [1..7] of integer; i, k, max1, max2, killKey, saveKillKey: integer; begin a[1] := -10; a[2] := 0; a[3] := 0; a[4] := 4; a[5] := 7; a[6] := -5; a[7] := -1; max1 := a[1]; for k := 1 to 2 do begin for i := low(a) to high(a) do begin if((a[i] >= max1) and (i<>saveKillKey)) then begin max1 := a[i]; killKey := i; end; end; if (k=1) then begin saveKillKey := killKey; // сохраняем ключ элемента чтобы не перезаписать его при 2м проходе max2 := max1; max1 := a[1]; // возвращаем исходное значение для 2го прогона end; end; writeln('max1 = ', max1); writeln('max2 = ', max2); readln(); end.vedro-compota
Wed, 09/08/2021 - 20:01
Permalink
1) Предлагаю начать так:
1) Предлагаю начать так:
if (a[1] > a[2]) { // } else { } // цикл далее2) Предлагаю просто сравнивать два максимума - переменные " killKey, saveKillKey" не нужны
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Thu, 09/09/2021 - 12:59
Permalink
RE
var a : array [1..7] of integer; i, k, max1, max2, killKey, saveKillKey: integer; begin a[1] := -10; a[2] := 0; a[3] := 0; a[4] := 4; a[5] := 7; a[6] := -5; a[7] := -1; max1 := a[1]; max2 := a[2]; if(max1 < max2) then begin max1 := a[2]; max2 := a[1]; end; for i := 3 to high(a) do begin if(a[i] > max2) then if(a[i] > max1) then begin max2:=max1; max1:=a[i]; end else max2:=a[i]; end; writeln('max1 = ', max1); writeln('max2 = ', max2); readln(); end.vedro-compota
Sat, 09/11/2021 - 11:45
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)