В Вашем варианте после while необходимо писать begin, а после Writeln - end. Но само по себе решение некрасивое. Вот Вам еще два на выбор.
1. Без массива
var s,n:integer; begin Write('Введите сумму: '); Read(s); n:=s div 5000; if n>0 then begin Writeln('Банкнот "5000" всего: ',n); s:=s mod 5000 end; n:=s div 1000; if n>0 then begin Writeln('Банкнот "1000" всего: ',n); s:=s mod 1000 end; n:=s div 500; if n>0 then begin Writeln('Банкнот "500" всего: ',n); s:=s mod 500 end; n:=s div 100; if n>0 then begin Writeln('Банкнот "100" всего: ',n); s:=s mod 100 end; n:=s div 50; if n>0 then begin Writeln('Банкнот "50" всего: ',n); s:=s mod 50 end; n:=s div 10; if n>0 then begin Writeln('Банкнот "10" всего: ',n); s:=s mod 10 end; if s>0 then Writeln('Недоплачено: ',s) end.
const k:array[1..6] of integer=(5000,1000,500,100,50,10); var s,n,i:integer; begin Write('Введите сумму: '); Read(s); for i:=1 to 6 do begin n:=s div k[i]; if n>0 then begin Writeln('Банкнот "',k[i],'" всего: ',n); s:=s mod k[i] end end; if s>0 then Writeln('Недоплачено: ',s) end.
n, counter, spisok, new_spisok = int(input()), 0, [], []
while counter != n:
spisok.append(int(input()))
counter += 1
c1, c2 = int(input()), int(input())
for i in spisok:
if c1 <= i <= c2:
new_spisok.append(i)
print(new_spisok, len(new_spisok))
Объяснение:
1) хз зачем там цикл while, но раз в условии написано, то сделал через него;
2) скорее всего работать нужно со списками, а не массивами, так как append - метод списка;
3) если нужно, могу объяснить каждую строку;
4) формат вывода массива не указан, поэтому вывод обычного массива с его длиной через запятую;
5) нижние слеши это пробелы типа)
Объяснение:
Вот Вам еще два на выбор.
1. Без массива
var
s,n:integer;
begin
Write('Введите сумму: '); Read(s);
n:=s div 5000;
if n>0 then begin
Writeln('Банкнот "5000" всего: ',n);
s:=s mod 5000
end;
n:=s div 1000;
if n>0 then begin
Writeln('Банкнот "1000" всего: ',n);
s:=s mod 1000
end;
n:=s div 500;
if n>0 then begin
Writeln('Банкнот "500" всего: ',n);
s:=s mod 500
end;
n:=s div 100;
if n>0 then begin
Writeln('Банкнот "100" всего: ',n);
s:=s mod 100
end;
n:=s div 50;
if n>0 then begin
Writeln('Банкнот "50" всего: ',n);
s:=s mod 50
end;
n:=s div 10;
if n>0 then begin
Writeln('Банкнот "10" всего: ',n);
s:=s mod 10
end;
if s>0 then Writeln('Недоплачено: ',s)
end.
Пример:
Введите сумму: 162504
Банкнот "5000" всего: 32
Банкнот "1000" всего: 2
Банкнот "500" всего: 1
Недоплачено: 4
2. С массивом
const
k:array[1..6] of integer=(5000,1000,500,100,50,10);
var
s,n,i:integer;
begin
Write('Введите сумму: '); Read(s);
for i:=1 to 6 do begin
n:=s div k[i];
if n>0 then begin
Writeln('Банкнот "',k[i],'" всего: ',n);
s:=s mod k[i]
end
end;
if s>0 then Writeln('Недоплачено: ',s)
end.
Пример
Введите сумму: 15470
Банкнот "5000" всего: 3
Банкнот "100" всего: 4
Банкнот "50" всего: 1
Банкнот "10" всего: 2