напишите программу, которая завершается всякий раз, когда она либо считывает число 10, либо отрицательное число

#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 в качестве значения).