Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 04.02.2011
Сообщений: 30
1

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

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

Последовательно вводим целые числа, до тех пор пока не встретится ноль. Для чётных чисел этой последовательности вычислить среднее арифметическое.
(При написании программы использовать цикл 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
234 / 171 / 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
301 / 159 / 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
Эксперт С++
2867 / 1802 / 355
Регистрация: 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
Эксперт С++
5809 / 3460 / 356
Регистрация: 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
Эксперт С++
2867 / 1802 / 355
Регистрация: 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
Эксперт С++
2867 / 1802 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 17:58 9
delete
0
301 / 159 / 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
301 / 159 / 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
Эксперт С++
621 / 465 / 57
Регистрация: 28.01.2011
Сообщений: 605
06.02.2011, 19:40 13
i%2 возвращает либо 1, либо 0, вот и сравниваем с нулем, чтобы чётность посмотреть...
0
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® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.