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

Вычислить ср.арифметическое (цикл do while)

04.02.2011, 14:49. Показов 6715. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Последовательно вводим целые числа, до тех пор пока не встретится ноль. Для чётных чисел этой последовательности вычислить среднее арифметическое.
(При написании программы использовать цикл do while)
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2011, 14:49
Ответы с готовыми решениями:

Цикл for и while: вычислить среднее арифметическое последовательности чисел
Решить задачу двумя методами: используя цикл for и используя цикл while. Написать программу,...

Цикл: Вычислить арифметическое выражение
Напишите решения пожалуйста этой задачи на с#

Вычислить среднее арифметическое чисел от n до m. Цикл с параметром.
При помощи for...do Вычислить среднее арифметическое чисел от n до m

Цикл: вычислить среднее арифметическое четных чисел на отрезке AB
В школе задали такую задачу: вычислите среднее арифметическое четных чисел на отрезке AB ...

12
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
04.02.2011, 15:02 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
int x, sum=0, k=-1;
do
{
 
cin>>x;
if (k%2==0) 
{
sum+=x;
k++;
}
}
while(x!=0);
cout<<(double)sum/k;
retrun 0;
}
1
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
04.02.2011, 15:05 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    int i, k=0;
    float sum=0;
    do
    {
        cout<<"Enter number: ";
        cin>>i;
        if (i%2==0)
        {
            sum+=i;
            k++;
        }
    }
    while (i!=0);
    cout<<"Rezultat: "<<sum<<"/"<<k<<" ="<<float(sum/k)<<endl;
    return 0;
}
Если считать, что четным должно быть само число, а не его номер в последовательности.
1
1 / 1 / 1
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 17:14  [ТС] 4
А можно то же самое, но с printf и scanf ?
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 17:18 5
ЛазаретЪ,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void){
        int i, k=0;
        float sum=0;
        do
        {
                printf("Enter number: ");
                scanf("%d", &i);
                if (i%2==0)
                {
                        sum+=i;
                        k++;
                }
        }
        while (i);
        printf("Rezultat:\n %0.0f/ %d = %0.2f", sum, k, float(sum / k));
        return 0;
}
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.02.2011, 17:33 6
Цитата Сообщение от asics Посмотреть сообщение
"Rezultat:\n %0.0f/ %d = %0.2f"
Наверно, подразумевалось так: "Rezultat:\n %0.2f/ %d = %0.2f"
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 17:41 7
Nameless One, Но сума целых чисел, будет целое число, зачем там два нуля писать ?
0
1 / 1 / 1
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 17:53  [ТС] 8
Программа не совсем корректно работает: при вводе цифр, например 1,2,3,4,5,6,0 выводится 12/4=3.00
Если в 4-ой строчке присвоить переменной k минус единицу (k=-1) - будет верно.
Есть ещё какие-нибудь способы?
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 17:58 9
delete
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
04.02.2011, 17:59 10
Вы задание уточните - вам нужна сумма четных элементов последовательности (2, 2, 3, 4. сумма=8) или сумма элементов, стоящих на четных позициях (2, 2, 3, 4. сумма=6)
0
1 / 1 / 1
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 18:02  [ТС] 11
нужна сумма четных элементов последовательности
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
04.02.2011, 20:27 12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
        int i, k=0;
        float sum=0;
        do
        {
                cout<<"Enter number: ";
                cin>>i;
                if (i%2==0)
                {
                        sum+=i;
                        k++;
                }
        }
        while (i!=0);
        cout<<"Rezultat: "<<sum<<"/"<<k-1<<" ="<<float(sum/(k-1))<<endl;
        return 0;
}
"например 1,2,3,4,5,6,0 выводится 12/4=3.00"
это потому, что когда вы вводите 0, цикл все рано выполняется, а 0 считается четным числом 0%2=0...
1
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
06.02.2011, 19:40 13
i%2 возвращает либо 1, либо 0, вот и сравниваем с нулем, чтобы чётность посмотреть...
0
06.02.2011, 19:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2011, 19:40
Помогаю со студенческими работами здесь

Цикл итерационный: вычислить среднее арифметическое цифр в записи натурального числа
вычислить среднее арифметическое цифр в записи натурального числа N, которое являются степенями...

Вычислить сумму и среднее арифметическое первых n целых чисел (цикл Repeat).
Очередная задачка: Вычислить сумму и среднее арифметическое первых n целых чисел (цикл Repeat).

Цикл: вычислить среднее арифметическое элементов последовательности, значения которых находятся в заданном интервале
Задача: Дана послідовніть з н цілих чисел. Обчисліть середнє арифметичне чисел, значення яких...

Цикл: вычислить среднее арифметическое элементов последовательности, значения которых находятся в заданном интервале
Задача: Дана последовательность из n целых чисел. Вычислить среднее арифметическое чисел,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru