Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
ЛазаретЪ
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 14:49     Вычислить ср.арифметическое (цикл do while) #1
Последовательно вводим целые числа, до тех пор пока не встретится ноль. Для чётных чисел этой последовательности вычислить среднее арифметическое.
(При написании программы использовать цикл do while)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
04.02.2011, 15:02     Вычислить ср.арифметическое (цикл do while) #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;
}
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
04.02.2011, 15:05     Вычислить ср.арифметическое (цикл do while) #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 / 0
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 17:14  [ТС]     Вычислить ср.арифметическое (цикл do while) #4
А можно то же самое, но с printf и scanf ?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.02.2011, 17:18     Вычислить ср.арифметическое (цикл do while) #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;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.02.2011, 17:33     Вычислить ср.арифметическое (цикл do while) #6
Цитата Сообщение от asics Посмотреть сообщение
"Rezultat:\n %0.0f/ %d = %0.2f"
Наверно, подразумевалось так: "Rezultat:\n %0.2f/ %d = %0.2f"
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.02.2011, 17:41     Вычислить ср.арифметическое (цикл do while) #7
Nameless One, Но сума целых чисел, будет целое число, зачем там два нуля писать ?
ЛазаретЪ
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 17:53  [ТС]     Вычислить ср.арифметическое (цикл do while) #8
Программа не совсем корректно работает: при вводе цифр, например 1,2,3,4,5,6,0 выводится 12/4=3.00
Если в 4-ой строчке присвоить переменной k минус единицу (k=-1) - будет верно.
Есть ещё какие-нибудь способы?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.02.2011, 17:58     Вычислить ср.арифметическое (цикл do while) #9
delete
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
04.02.2011, 17:59     Вычислить ср.арифметическое (цикл do while) #10
Вы задание уточните - вам нужна сумма четных элементов последовательности (2, 2, 3, 4. сумма=8) или сумма элементов, стоящих на четных позициях (2, 2, 3, 4. сумма=6)
ЛазаретЪ
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 30
04.02.2011, 18:02  [ТС]     Вычислить ср.арифметическое (цикл do while) #11
нужна сумма четных элементов последовательности
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
04.02.2011, 20:27     Вычислить ср.арифметическое (цикл do while) #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...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2011, 19:40     Вычислить ср.арифметическое (цикл do while)
Еще ссылки по теме:

C++ вычислить арифметическое выражение
Вычислить среднее арифметическое C++
Вычислить среднее арифметическое C++

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

Или воспользуйтесь поиском по форуму:
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
06.02.2011, 19:40     Вычислить ср.арифметическое (цикл do while) #13
i%2 возвращает либо 1, либо 0, вот и сравниваем с нулем, чтобы чётность посмотреть...
Yandex
Объявления
06.02.2011, 19:40     Вычислить ср.арифметическое (цикл do while)
Ответ Создать тему
Опции темы

Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru