Предмет: Информатика, автор: Молодочек

С++. Вопрос, почему не работает цикл while. Вот код
#include
#include
#include
using namespace std;
int main()
{
const int size = 5;
double arr[size];
int nowi;
for (int i = 0; i < size; i++)
{
cin >> arr[i];
}
cout << endl;
int sum = 0;
int k = 0;
for (int i = 0; i < size; i++)
{
while (arr[i] < 0)
{
k++;
sum = sum + arr[i];
}
}
cout << k << endl << sum;
return 0;
}


MrMiner1: У тебя цикл while завершается после того, как элемент массива под номером i станет неотрицательным. Но в цикле ты увеличиваешь значение k, а не arr[i]. И, как следствие, если изначально arr[i] отрицателен, то выход из цикла не совершится.

Ответы

Автор ответа: Pashaprog
1

Ответ:

#include  <iostream>

using namespace std;

int main()

{

const int size = 5;

double arr[size];

int new;

for (int i = 0; i < size; i++)

{

cin >> arr[i];

}

cout << endl;

int sum = 0;

int k = 0;

for (int i = 0; i < size; i++)

{

if( arr[i] < 0)

{

k++;

}

}

cout << k << endl << sum;

return 0;

}

Объяснение:

1-е Я не знаю была или нет у тебя директория, то есть "#include" она должна быть для работы программы;

2-е Тебе не нужен while он работает от true и false, бессмысленно его использовать для проверки массива...

3-е Я добавил if вместо while. if - это проверка, пример ты можешь посмотреть в новом коде выше..


Молодочек: Мне нужно что бы выполнялось тело цикла до тех пор пока элемент массива не станет положительным, а если это прописать через if то будут рассматриваться все отрицательные элементы
Pashaprog: Можешь написать само задание?
Похожие вопросы
Предмет: Физика, автор: grisenkovalerij80
Предмет: География, автор: a98115417