int n = in.nextInt(); int[] a = new int[n]; a[0] = in.nextInt(); int min = a[0]; int minS = min; for (int i = 1; i < n; i++) { a[i] = in.nextInt(); if (a[i] < min) min = a[i]; } for (int i = 1; i < n; i++) { if (a[i] < minS && a[i] != min) minS = a[i]; } System.out.println(min + " " + minS); На всякий случай объясню еще так. Изначально двум минимумам мы присваиваем значение первого элемента. В первом цикле ты ищешь первый минимум, тут всё понятно: со второго элемента массива, если элемент меньше минимума, то минимуму присваиваем значение элемента. Во втором цикле мы ищем второй минимум: всё то же самое, только добавляется ещё одно условие: элемент должен быть не равен первому минимуму. Вот, впринципе, и всё
djevgen
02.03.2020
1. "Современный вариант"
// PascalABC.NET 3.0, сборка 1076 begin var n:=ReadInteger('Введите количество элементов массива: '); var a:=ArrRandom(n,1000,10000); Write('Исходный массив: ',a,#13#10); Write('Множество цифр из разряда сотен: '); a.Select(x->(x mod 1000) div 100).Sorted.Distinct.Println(',') end.
Тестовое решение: Введите количество элементов массива: 8 Исходный массив: [9374,4420,8856,8274,7555,2461,8302,6325] Множество цифр из разряда сотен: 2,3,4,5,8
2. "Школьный вариант"
// PascalABC.NET 3.0, сборка 1076 var i,n:integer; sd:set of 0..9; a:array[1..50] of integer; begin Write('Введите количество элементов массива: '); Read(n); Randomize; Write('Исходный массив: '); sd:=[]; for i:=1 to n do begin a[i]:=Random(9001)+1000; Write(a[i],' '); Include(sd,(a[i] mod 1000) div 100) end; Writeln; Write('Множество цифр из разряда сотен: '); for i:=0 to 9 do if i in sd then Write(i:2); Writeln end.
Тестовое решение: Введите количество элементов массива: 8 Исходный массив: 5332 4215 7231 3399 6989 8904 7804 3517 Множество цифр из разряда сотен: 2 3 5 8 9
сергеевич1958
02.03.2020
1)var a:array[1..3,1..3] of integer; b:array[1..3,1..3] of integer; c:array[1..3,1..3] of integer; i,j:integer; begin; writeln('A array:'); for i:=1 to 3 do begin; writeln; for j:=1 to 3 do begin; a[i,j]:=random(10)-10; write(a[i,j]:4); end; end; writeln; writeln('B array:'); for i:=1 to 3 do begin; writeln; for j:=1 to 3 do begin; b[i,j]:=random(-10,10); write(b[i,j]:4); end; end; writeln; writeln('C array:'); for i:=1 to 3 do begin; writeln; for j:=1 to 3 do begin; c[i,j]:=a[i,j]*b[i,j]; write(c[i,j]:4); end; end; end. 2)var a:array[1..1000,1..1000] of integer; i,j,k,n,u:integer; begin; randomize; readln(n); writeln('A array:'); for i:=1 to n do begin; writeln; for j:=1 to n do begin; a[i,j]:=random(10)-10; write(a[i,j]:4); end; end; for i:=1 to n do begin; for j:=1 to n do u+=a[i,j]; if u<0 then inc(k); u:=0; end; writeln; write('Result:',k); end.
int[] a = new int[n];
a[0] = in.nextInt();
int min = a[0];
int minS = min;
for (int i = 1; i < n; i++) {
a[i] = in.nextInt();
if (a[i] < min) min = a[i];
}
for (int i = 1; i < n; i++) {
if (a[i] < minS && a[i] != min) minS = a[i];
}
System.out.println(min + " " + minS);
На всякий случай объясню еще так.
Изначально двум минимумам мы присваиваем значение первого элемента.
В первом цикле ты ищешь первый минимум, тут всё понятно: со второго элемента массива, если элемент меньше минимума, то минимуму присваиваем значение элемента.
Во втором цикле мы ищем второй минимум: всё то же самое, только добавляется ещё одно условие: элемент должен быть не равен первому минимуму.
Вот, впринципе, и всё