#c
Вопрос:
Напишите программу на C , которая считывает с клавиатуры до 10 чисел, используя цикл while с ЧАСОВЫМ, для подсчета и добавления положительных значений, а затем отображения результатов. Ваша программа должна завершаться всякий раз, когда она либо считывает число 10, либо отрицательное число. Вы предполагаете, что, по крайней мере, есть одно число.
Это то, что я пробовал, но я не мог придумать способ в основном продолжать читать входные данные без отправкиEnter, пока он не найдет отрицательное число или не достигнет предела ввода (10), поэтому он останавливается.
#include <iostream>
using namespace std;
int main()
{
const int SENTINEL = 10;
int number;
int count = 0;
int sum = 0;
cout << "enter 10 random numbers" << endl;
while (count != SENTINEL)
{
cin >> number;
sum = sum number;
count ;
}
return 0;
}
Комментарии:
1.
if(number < 0) break;
?
Ответ №1:
Что о:
#include <iostream>
using namespace std;
int main()
{
const int SENTINEL = 10;
int number;
int count = 0;
int sum = 0;
int stop = 0;
int aux = 0;
cout << "enter 10 random numbers" << endl;
while (count != SENTINEL amp;amp; stop == 0)
{
cin >> number;
if(number > 0){
sum = sum number;
aux ;
} else {
stop = 1;
}
count ;
}
printf("Number of positives number is %d n", aux);
printf("The sum of the positives numbers is %d", sum);
return 0;
}
Ответ №2:
Решите свою проблему:
#include <iostream>
using namespace std;
int main()
{
const int SENTINEL = 10;
int number;
int count = 0;
int sum = 0;
cout << "enter 10 random numbers" << endl;
while (cin >> numberamp;amp;count != SENTINELamp;amp;number>0)
{
sum = sum number;
count ;
}
cout<<sum<<endl;
return 0;
}
Комментарии:
1. Стоит отметить, что вы можете исправить этот код, чтобы правильно считывать до 10 чисел, поменяв порядок условий в цикле while:
while (count != SENTINEL amp;amp; cin >> number amp;amp; number > 0)
. Также сомнительно, должно ли быть условиеnumber > 0
(считать 0 «отрицательным числом») илиnumber >= 0
(разрешить пользователю вводить 0 в качестве значения).