Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/64: Рейтинг темы: голосов - 64, средняя оценка - 4.56
1 / 1 / 3
Регистрация: 02.03.2015
Сообщений: 58

Вывести на экран сумму и среднее арифметическое последовательности положительных чисел, введенных с клавиатуры

07.10.2015, 06:21. Показов 12850. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Помогите пожалуйста с написанием программы.
"Найти и вывести на экран сумму и среднее арифметическое последовательности положительных чисел, введенных с клавиатуры. Если вводится ноль, то ввод чисел прекращается.
У меня в программе если ввести ноль то программа заканчивает работать но при этом 1 цикл все же происходит. Вот как сделать чтобы при вводе нуля программа сразу закрылась без проведения цикла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    double a, b, c, d;
    b = 0;
    c = 0;
    do {
        b = c;
        cout << "Введите положительное число = ";
        cin >> a;
        if (a != 0) {
            c = a + b;
            d = (a + b) / 2;
        }
        else {
            cout << "Введен 0\n";
        }
        cout << "Сумма = " << c << "\nСреднее значение = " << d << "\n";
    } while (a != 0);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.10.2015, 06:21
Ответы с готовыми решениями:

Считать сумму и среднее арифметическое введенных с клавиатуры положительных чисел
int main(int argc, char *argv) { float x,sr, sum = 0; float i=0; printf(&quot;vvedite x &quot;); scanf(&quot;%f&quot;, &amp;x); ...

Найти и вывести на экран сумму и среднее арифметическое последовательности чисел
программа позволяющая найти и вывести на экран сумму и среднее арифметическое последовательности чисел,вводимые с клавиатуры.Если вводить...

Найти среднее арифметическое положительных чисел, введенных с клавиатуры (цикл for)
подскажите решение, с использованием цикла for : найти среднее арифметическое положительных чисел, введенных с клавиатуры. Всего ввести N...

13
 Аватар для EfesXZC
2 / 2 / 2
Регистрация: 07.08.2015
Сообщений: 72
07.10.2015, 07:42
Violex,
Цитата Сообщение от Violex Посмотреть сообщение
Вот как сделать чтобы при вводе нуля программа сразу закрылась без проведения цикла
Может использовать цикл с предусловием?
0
1 / 1 / 3
Регистрация: 02.03.2015
Сообщений: 58
07.10.2015, 07:52  [ТС]
Цитата Сообщение от EfesXZC Посмотреть сообщение
Может использовать цикл с предусловием?
Как можно сделать предусловие?
По идее как то так, но он не работает и в принципе понятно почему.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    double a, b, c, d;
    b = 0;
    c = 0;
    while (a != 0) {
        b = c;
        cout << "Введите положительное число = ";
        cin >> a;
        if (a != 0) {
            c = a + b;
            d = (a + b) / 2;
        }
        else {
            cout << "Введен 0\n";
        }
        cout << "Сумма = " << c << "\nСреднее значение = " << d << "\n";
    } 
}
0
 Аватар для EfesXZC
2 / 2 / 2
Регистрация: 07.08.2015
Сообщений: 72
07.10.2015, 08:00
Violex, Как вариант, можно до начала тела цикла присвоить a любое значение не равное нулю. Например a=1.
0
1 / 1 / 3
Регистрация: 02.03.2015
Сообщений: 58
07.10.2015, 08:08  [ТС]
Цитата Сообщение от EfesXZC Посмотреть сообщение
Violex, Как вариант, можно до начала тела цикла присвоить a любое значение не равное нулю. Например a=1.
Все равно цикл проходит 1 раз после ввода нуля.
0
 Аватар для EfesXZC
2 / 2 / 2
Регистрация: 07.08.2015
Сообщений: 72
07.10.2015, 08:27
C++
1
2
3
4
5
6
7
8
int tmp=0, a=1, i=0;
while (a!=0){
       cin >> a;
       tmp += a;
       i ++;
}
cout << "Сумма чисел: "<< tmp << endl;
cout << "Среднее арифметическое:" << tmp/i << endl;
Violex, попробуйте так. Должно работать
0
1 / 1 / 3
Регистрация: 02.03.2015
Сообщений: 58
07.10.2015, 09:11  [ТС]
Цитата Сообщение от EfesXZC Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int tmp=0, a=1, i=0;
while (a!=0){
 cin >> a;
 tmp += a;
 i ++;
}
cout << "Сумма чисел: "<< tmp << endl;
cout << "Среднее арифметическое:" << tmp/i << endl;
Violex, попробуйте так. Должно работать
не совсем понял куда вставить код (((
нашел ошибку у себя я среднеарифметическое считал не правильно. Но к циклу это не относится с циклом все так же проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    double a, b, c, d,i;
    a = 1;
    c = 0;
    i = 0;
    while (a != 0) {
        cout << "Введите положительное число = ";
        cin >> a;
        if (a != 0) {
            i++;
        c= c + a;
        b= c / i;;
        }
        else {
            cout << "Введен 0\n";
        }
        cout << "Сумма = " << c << "\nСреднее значение = " << b << "\n";
    } 
}
0
13 / 13 / 6
Регистрация: 29.09.2015
Сообщений: 38
07.10.2015, 09:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    double a, b, c, d,i;
    a = 1;
    c = 0;
    i = 0;
    cout << "Введите положительное число = ";
    cin >> a;
    while (a != 0) {
            i++;
        c= c + a;
        b= c / i;;
        cout << "Сумма = " << c << "\nСреднее значение = " << b << "\n";
        cout << "Введите положительное число = ";
        cin >> a;
    } 
}
0
 Аватар для EfesXZC
2 / 2 / 2
Регистрация: 07.08.2015
Сообщений: 72
07.10.2015, 09:40
Цитата Сообщение от Violex Посмотреть сообщение
не совсем понял куда вставить код (((
Violex, Вставлять вместо вашего цикла. Но вы правы, после ввода нуля, цикл повторится еще один раз. Но это не проблема, если, при вычислении среднего значения, заменить
C++
1
cout << "Среднее арифметическое:" << tmp/i << endl;
на
C++
1
cout << "Среднее арифметическое:" << tmp/(i-1) << endl;
0
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
07.10.2015, 10:32
Тоже такая проблема была, можно break"нуться, но я не уверен, что это лучший вариант.
0
1 / 1 / 3
Регистрация: 02.03.2015
Сообщений: 58
07.10.2015, 14:07  [ТС]
Я сделал через while. в eslse надо добавить return 0; позже скину готовый вариант
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
07.10.2015, 14:21
C++
1
2
3
4
5
6
7
8
9
10
11
12
int x=0;
    int sum=0;
    double sr;
    int i=0;
 
    while (cin>>x && x){
        sum+=x;
        sr=static_cast<double>(sum)/ ++i; //Приведение sum к double
    }
 
    cout<<sum<<"\n";
    cout<<sr;
0
 Аватар для Пытливый Ум
22 / 22 / 16
Регистрация: 04.06.2015
Сообщений: 126
07.10.2015, 14:41
добавить в else return (или break):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    double a, b, c, d,i;
    a = 1;
    c = 0;
    i = 0;
    while (a != 0) {
        cout << "Введите положительное число = ";
        cin >> a;
        if (a != 0) {
            i++;
        c= c + a;
        b= c / i;;
        }
        else {
            cout << "Введен 0\n";
            return;
        }
        cout << "Сумма = " << c << "\nСреднее значение = " << b << "\n";
    } 
}
0
1 / 1 / 3
Регистрация: 02.03.2015
Сообщений: 58
07.10.2015, 17:57  [ТС]
Цитата Сообщение от Пытливый Ум Посмотреть сообщение
добавить в else return (или break):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
void main()
{
 setlocale(LC_ALL, "Russian");
 double a, b, c, d,i;
 a = 1;
 c = 0;
 i = 0;
 while (a != 0) {
 cout << "Введите положительное число = ";
 cin >> a;
 if (a != 0) {
 i++;
 c= c + a;
 b= c / i;;
 }
 else {
 cout << "Введен 0\n";
 return;
 }
 cout << "Сумма = " << c << "\nСреднее значение = " << b << "\n";
 } 
}
Ну да именно так я и имел ввиду. Дошло за 15 минут до сдачи работы что необходимо только return добавить. ну и переменную d убрать, лишняя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2015, 17:57
Помогаю со студенческими работами здесь

Найти среднее арифметическое положительных чисел, введенных с клавиатуры. Всего ввести N различных чисел
Что тут не так? оно не решает правильно, помогите) Private Sub CommandButton5_Click() Label12.Caption = (&quot; &quot;) Dim n As...

Найти сумму и среднее арифметическое введённых положительных чисел
Осуществить ввод целых чисел (ввод осуществляется до тех пор,пока не будет введён 0) и подсчитать их сумму и среднее арифметическое...

Найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых с клавиатуры
Всем привет. На курсе попалось такое простецкое задание Напишите программу, которая находит сумму, произведение и среднее...

Вычислить сумму и среднее арифметическое последовательности положительных чисел
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел. Числа вводятся с клавиатуры.

Вычислить сумму и среднее арифметическое последовательности положительных чисел
Написать программу, которая вычисляет сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru