Честно, не поняла ваш код вообще. Почему нет цикла? Предлагаю свое решение: 1)Cначала заполняем массив случайными числами от 2 до 5 (включительно) 2)Потом выводим его (Для проверки) 3) Потом считаем оценки. Но сначала нужно обнулить переменные( В самом начале это делали), а то получится кака (:
program N_0547847; var b, c, d, f, i:integer; a: array [1..20] of integer; begin; randomize; b:=0; c:=0; d:=0; f:=0; for i:=1 to 20 do begin a[i]:=random(4)+2; write(a[i],' '); end; writeln; for i:=1 to 20 do begin if a[i]=2 then b:=b+1; if a[i]=3 then c:=c+1; if a[i]=4 then d:=d+1; if a[i]=5 then f:=f+1; end; writeln('Двоек: ', b); writeln('Троек: ', c); writeln('Четверок: ',d); writeln('Пятерок: ',f); end.
sakh2010kprf7
25.12.2021
Решение, что называется, "в лоб" (далеко, очень далеко, не самое лучшее): var s,k1,k5,k10,k50,k100,k500,k1000,k10000:integer; begin write('s = '); readln(s); k1:=0; k5:=0; k10:=0; k50:=0; k100:=0; k500:=0; k1000:=0; k10000:=0; while s>=10000 do begin s:=s-10000; k10000:=k10000+1; end; while s>=1000 do begin s:=s-1000; k1000:=k1000+1; end; while s>=500 do begin s:=s-500; k500:=k500+1; end; while s>=100 do begin s:=s-100; k100:=k100+1; end; while s>=50 do begin s:=s-50; k50:=k50+1; end; while s>=10 do begin s:=s-10; k10:=k10+1; end; while s>=5 do begin s:=s-5; k5:=k5+1; end; while s>=1 do begin s:=s-1; k1:=k1+1; end; writeln('k10000=',k10000,' k1000=',k1000,' k500=',k500,' k100=',k100,' k50=',k50,' k10=',k10,' k5=',k5,' k1=',k1); writeln(' Всего купюр = ',k1+k5+k10+k50+k100+k500+k1000+k10000); end.
Пример: s = 27879 k10000=2 k1000=7 k500=1 k100=3 k50=1 k10=2 k5=1 k1=4 Всего купюр = 21
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Выполните арифметическое действие в двоичной системе счисления 101010 + 1101 1010 + 1010
1101 - 13
1010 - 10
1010 - 10
42+13+10+10=75 (1001011)