Найдите количество невырожденных прямоугольников со сторонами, параллельными осям координат, вершины которых лежат в точках с целыми координатами внутри или на границе прямоугольника, противоположные углы которого находятся в точках (0, 0) и (W, Н)
const n=6; var m,k,i: integer; var a: array[1..n] of integer; begin m:=integer.MinValue; writeln ('Исходный массив'); for i:=1 to n do begin a[i]:=random(20); write (a[i]:3); if a[i]>m then begin m:=a[i]; k:=i; end; end; writeln; writeln ('Наибольший элемент массива: a[',k,'] = ',m); end.
const n=50; var sa: real; i,k: integer; var a: array[1..n] of integer; begin sa:=0; k:=0; writeln ('Исходный массив'); for i:=1 to n do begin a[i]:=random(3); write (a[i]:2); sa:=sa+a[i]; end; sa:=sa/n; writeln; writeln ('Среднее арифметическое = ',sa); writeln; writeln ('Элементы массива, равные среднему арифметическому:'); for i:=1 to n do begin if a[i]=sa then begin writeln ('a[',i,'] = ',a[i]); k:=1; end; end; if k=0 then writeln ('Нет таких элементов'); end.
#include <iostream> #include <ctime> #include <stdlib.h> using namespace std;
double Sum(int *A, int N, int C, int M);
int main() { srand(time(0)); int N, C = 19, M = 30; cout << "N = ", cin >> N; int Train[N]; for(int i = 0; i < N; i++) cout << (Train[i] = rand() % (M+1)) << " "; cout << "\nSum = " << Sum(&Train[0], N, C, M);; return 0; }
double Sum(int*A, int N, int C, int M) { double S = 0; int k = 0; for(int i = 0; i < N; i++) { S += A[i]*C; k +=M - A[i]; } cout << "\nk = " << k; return S; }
var
m,k,i: integer;
var a: array[1..n] of integer;
begin
m:=integer.MinValue;
writeln ('Исходный массив');
for i:=1 to n do begin
a[i]:=random(20);
write (a[i]:3);
if a[i]>m
then begin m:=a[i]; k:=i; end;
end;
writeln;
writeln ('Наибольший элемент массива: a[',k,'] = ',m);
end.
Исходный массив
2 1 12 12 16 4
Наибольший элемент массива: a[5] = 16
const n=50;
var
sa: real;
i,k: integer;
var a: array[1..n] of integer;
begin
sa:=0; k:=0;
writeln ('Исходный массив');
for i:=1 to n do begin
a[i]:=random(3);
write (a[i]:2);
sa:=sa+a[i];
end;
sa:=sa/n;
writeln;
writeln ('Среднее арифметическое = ',sa);
writeln;
writeln ('Элементы массива, равные среднему арифметическому:');
for i:=1 to n do begin
if a[i]=sa
then begin writeln ('a[',i,'] = ',a[i]); k:=1; end;
end;
if k=0 then writeln ('Нет таких элементов');
end.
Исходный массив
0 0 0 0 1 2 1 2 1 1 2 1 1 0 0 1 0 0 1 2 1 1 1 2 2 1 0 1 1 2 0 1 1 0 0 0 2 2 1 1 2 1 2 0 2 1 2 1 1 2
Среднее арифметическое = 1
Элементы массива, равные среднему арифметическому:
a[5] = 1
a[7] = 1
a[9] = 1
a[10] = 1
a[12] = 1
a[13] = 1
a[16] = 1
a[19] = 1
a[21] = 1
a[22] = 1
a[23] = 1
a[26] = 1
a[28] = 1
a[29] = 1
a[32] = 1
a[33] = 1
a[39] = 1
a[40] = 1
a[42] = 1
a[46] = 1
a[48] = 1
a[49] = 1
PS:
Как правило эта программа выводит пустой результат. Т.е. нет элементов, равных среднему арифметическому. Возможно что-то упущено в условии задачи.