Честно, не поняла ваш код вообще. Почему нет цикла? Предлагаю свое решение: 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>
using namespace std;
int main(){
unsigned short int Picture[4][4];
unsigned short int AverageBrightness = 0;
for(unsigned short int y = 0;y < 4;y++){
for(unsigned short int x = 0;x < 4;x++){
std::cin >> Picture[y][x];
AverageBrightness = AverageBrightness + Picture[y][x];
}
}
AverageBrightness = AverageBrightness / 16;
for(unsigned short int y = 0;y < 4;y++){
for(unsigned short int x = 0;x < 4;x++){
if(Picture[y][x] < AverageBrightness){
Picture[y][x] = 0;
}else{
Picture[y][x] = 255;
}
}
}
for(unsigned short int y = 0;y < 4;y++){
for(unsigned short int x = 0;x < 4;x++){
std::cout << Picture[y][x];
}
}
return 0;
}
Объяснение: