. Всего две задачи С++ Задача 3-2
Дано N цілих чисел. Знайти суму трьохцифрових чисел, що є серед даного набору.
ТУ. У першому рядку стандартного вхідного потоку міститься N (N<1000) – кількість чисел. У наступному рядку через пропуск дано самі числа. У стандартний вихідний потік вивести суму трьохцифрових чисел.
Вхідні дані
5
12 4 200 7 101
Вихідні дані
301
2 Дано N цілих чисел. Знайти кількість чисел, що закінчуються двійкою.
ТУ. У першому рядку стандартного вхідного потоку міститься N (N<1000) – кількість чисел. У наступному рядку через пропуск дано самі числа. У стандартний вихідний потік вивести кількість чисел.
Вхідні дані
5
15 4 2 10 92
Вихідні дані
2
function Has7Octal(n: integer): Boolean;
var
p, q, r: integer;
begin
Result := false;
if n > 0 then begin
p := abs(n);
repeat
q := p div 8;
r := p mod 8;
if r = 7 then begin Result := true; p := 0 end
else p := q
until p = 0;
end;
end;
const
m = 10;
n = 7;
var
a: array[1..m] of integer;
b: array[1..n] of integer;
c: array[1..m + n] of integer;
i, k: integer;
begin
writeln('Введите элементы масcива А(', m, ')');
for i := 1 to m do read(a[i]);
writeln('Введите элементы масcива B(', n, ')');
for i := 1 to n do read(b[i]);
k := 0;
for i := 1 to m do
if not Has7Octal(a[i]) then begin
k := k + 1;
c[k] := a[i]
end;
for i := 1 to n do
if not Has7Octal(b[i]) then begin
k := k + 1;
c[k] := b[i]
end;
writeln('Результирующий массив');
for i := 1 to k do write(c[i]:7);
writeln
end.
Тестовый прогон:
Введите элементы масcива А(10)
3453 -2341 2424 15353 0 5344 93 7777 1274 -343
Введите элементы масcива B(7)
8644 8090 -12321 23432 5 1234 35
Результирующий массив
-2341 0 5344 93 -343 -12321 23432 5 1234 35
Program Robiertmusin;
uses crt;
const n = 15;
type
MyArray = array [1..n,1..n] of integer;
procedure ArrayOutput(A: MyArray);
var i,j: integer;
begin
for i := 1 to n do
begin
for j:= 1 to n do
write(A[i,j]:4, ' ');
writeln;
end;
writeln;
end;
procedure RowSort(var A: MyArray; Nom: integer);
var i, j, temp: integer;
begin
for i := 1 to n-1 do
for j := i+1 to n do
if A[nom,i]>A[nom,j] then begin
temp:=A[nom,i];
A[nom,i]:=A[nom,j];
A[nom,j]:=temp;
end;
writeln(nom,'-я строка упорядочена');
end;
var
mass:MyArray;
i,j:integer;
begin
writeln('В матрице целых чисел А (n*n) программа упорядочивает те строки,'); writeln('в которых диагональные элементы не содержат семерок');
{Создаём начальный массив и выводим его}
randomize;
for i := 1 to n do
for j:= 1 to n do
mass[i,j]:=random(20);
ArrayOutput(mass);
{Просматриваем строки}
for i := 1 to n do
begin
if (mass[i,i]<>7) and (mass[n-i+1,n-i+1]<>7) then RowSort(mass, i);
end;
{Выводим итоговый массив}
writeln('Упорядоченный массив: ');
ArrayOutput(mass);
end.