#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;
}
Объяснение:
В целом если смотреть на цикл с параметром в С++, то он немного отличается от других языков.
Его конструкция: for ( объявление переменной; условие; операция с переменной)
Давайте на примере разберем, как он работает.
for (int i = 0; i < 2; i ++) {какое-то действие}
На первом шаге i = 0, затем мы проверяем условие, 0 < 2 - да, следовательно, увеличиваем i на единицу.
Второй шаг i = 1, проверяем условие, 1 < 2 - да, следовательно, увеличиваем i на единицу, i = 2.
Третий шаг i = 2, проверяем условие 2 < 2 - нет, следовательно, цикл завершен.
Еще в плюсах можно пропускать выражения, то есть, с цикла for мы можем даже создать бесконечный цикл.
for (;;)
Но это используется очень редко, поэтому заострять внимание на этом смысла нет.
Совсем забыл, переменную для счетчика цикла можно объявлять как в самом for, так и за его пределами, в примере я объявлял переменную в цикле.
Пример:
int i;
for ( i = 0; i < N; i++)
И
for (int i = 0; i < N; i++)
Разные записи, но делают они одно и тоже.