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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
ЛазаретЪ
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 30
#1

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

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

Последовательно вводим целые числа, до тех пор пока не встретится ноль. Для чётных чисел этой последовательности вычислить среднее арифметическое.
(При написании программы использовать цикл 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
2842 / 1779 / 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
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
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
2842 / 1779 / 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
2842 / 1779 / 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++ Вычислить арифметическое выражение
Найти среднее арифметическое таких чисел в диапазоне [a; b], у которых последняя цифра равна 7 (цикл for) C++
Цикл: Найти среднее арифметическое всех чисел а1,…,an, кроме ai. 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)
Ответ Создать тему
Опции темы

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