значение s и почему оно такое ? что конкретно происходит здесь s += A[i]>0;

#include <iostream>
using namespace std;

int main()
{
    int A[10]={0,1,2,3,4,5,6,7,8,9};
    int s = 1;
    for (int i = 0; i < 10; i++)
    {
        s += A[i]>0;
    }
    cout << s;
}

Ответы (1 шт):

Автор решения: teran

В си-подобных языках конструкция x += y это сокращенная запись x = x + y.
справа то знака (оператора) присваивания у вас логическое выражение a[i] > 0. Логическое выражение при вычислении принимает значение true или false, а при сложении неявно приводится к целому типу и становится 1 или 0.
Таким образом, когда элемент массива положительный, то получаем s += 1, а если 0 или меньше, то s += 0. В итоге данный цикл считает число положительных элементов массива.
Возникает вопрос, почему начальное значение s = 1, но тут вам подскажет только тот, кто этот код написал.

→ Ссылка