Цитата bangybam:
а вот когда первое введенное значение равно 0 то сумму пишет тоже равную нулю. »
|
Конечно не работает, написанный код совсем не то делает.
Цитата bangybam:
s+= a[0]<0||a[9]<0 ? 0 : a[i]; »
|
Твой код делает следующее: если первый из введённых 10ти элементов меньше нуля, или последний меньше нуля, то прибавляем к s 0 во ВСЕХ десяти проходах цикла, а если же хотя бы один из этих элементов массива (1ый или 10ый) больше нуля, то добавляем текущее.
Тебе надо так:
Цитата bangybam:
суммировать элементы которые находятся между первым и последним позитивным элементом( не включая их) »
|
Код:

bool start=FALSE; // флаг, показывающий, попадался ли уже среди элементов массива положительный, т.е. стоит ли СЛЕДУЮЩИЙ положительный прибавлять
int last=0; // сюда занесём ПОСЛЕДНИЙ ПОЛОЖИТЕЛЬНЫЙ элемент массива, чтобы потом его вычесть из суммы
for (int i=0; i<10; i++)
{
if(a[i]>0) {
if (start==FALSE) start=TRUE; //если встретили первый ПОЛОЖИТЕЛЬНЫЙ (это не обязательно a[0]) элемент массива, то меняем флаг,
//чтобы в будущем знать, что как минимум 1 положительный уже был
else {
s=s+a[i]; // иначе, если start уже равно TRUE, т.е. уже положительный был, то встреченный нами положительный a[i] надо прибавить к сумме
last = a[i];
}
s = s - last;
printf("%i\n",s);