Честно, не поняла ваш код вообще. Почему нет цикла? Предлагаю свое решение: 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.
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.
#include <iostream>
#include <vector>
using namespace std;
int am_dig(int k){
int res = 0;
while(k > 0){
res++;
k /= 10;
}
return res;
}
double average(vector<double> a){
double sum = 0;
for(auto i: a)
sum += i;
return sum/a.size();
}
int main() {
vector<double> a;
double x = 1;
while(x != 0){
cin >> x;
if(am_dig(x) == 3)
a.push_back(x);
}
if(a.size() == 0)
cout << "NO";
else
cout << average(a);
}