uses Crt; const nn=1000; var i,n,mn:integer; a:array[1..nn] of integer; begin Randomize; ClrScr; Write('n='); Read(n); mn:=1000; for i:=1 to n do begin a[i]:=Random(199)-99; Write(a[i],' '); if a[i]<mn then mn:=a[i] end; Writeln; Writeln('Наим. элемент ',mn); ReadKey end.
uses Crt; var i,n,mn:integer; a:array of integer; begin Randomize; ClrScr; Write('n='); Read(n); SetLength(a,n); mn:=1000; for i:=0 to n-1 do begin a[i]:=Random(199)-99; Write(a[i],' '); if a[i]<mn then mn:=a[i] end; Writeln; Writeln('Наим. элемент ',mn); ReadKey end.
Выполнение приведено во вложении 2
// 3. PascalABC.NET 3.2, 2016г., современное решение
begin var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println; Writeln('Наим. элемент ',a.Min) end.
Выполнение приведено во вложении 3.
Сделать выводы каждый может сам...
Примечание: все решения сделаны в среде PascalABC.NET 3.2, который для уровня школьных задач можно считать совместимым на уровне исходного текста с вышеприведенными версиями паскалей.
#include <stdlib.h>
int main()
{
int n=10, k;
int a[n];
int max = 20, min = -20;
int sum=0;
printf("k (<=10) = "); scanf("%d",&k);
srand (time(NULL));
for (int i=0; i<n; i++) {
a[i] = (float) rand() / RAND_MAX*(max-min)+min;
printf ("%d ", a[i]);
}
printf("\n");
for (int i = 0; i<k; i++) sum+=a[i];
printf("sum (1..%d) = %d\n", k,sum);
for (int i=1; i<=n-k; i++) {
sum = sum-a[i-1]+a[i+k-1];
printf("sum (%d..%d) = %d\n", i+1, i+k, sum);
}
return 0;
}
Пример:
k (<=10) = 5-10 1 -11 -10 16 6 -1 -15 -19 9
sum (1..5) = -14
sum (2..6) = 2
sum (3..7) = 0
sum (4..8) = -4
sum (5..9) = -13
sum (6..10) = -20