Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
posol_7
16 / 16 / 2
Регистрация: 19.11.2014
Сообщений: 156
#1

С++: числа типа double - C++

07.01.2015, 02:41. Просмотров 574. Ответов 3
Метки нет (Все метки)

Всем добрый вечер! Товарищи, я - начинающий чайник, прошу вас объяснить мне как работать с типом double. Мне надо написать такую программу: записывать числа пока не будет введен 0, а также на экран вывести сумму, количество и среднее значение всех чисел (нуль в количество не включать).

Проблема состоит в том, что при выводе на экран среднее значение округляется.
Получается:
Сумма: 183
Количество: 4
Среднее значение: 45
Должно получаться:
Сумма: 183
Количество: 4
Среднее значение: 45,75
Вот мой код:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// 1.10.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "iostream"
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
int sum(0), kol(0), x;
double sr(0);
 
cout << "\t][Среднее значение][" << endl;
cout << "Вводите числа через пробел: " << endl;
cin>>x;
 
while(x!=0)
{
    if(x>0||x<0)
    {
        kol++;
        sum+=x;
        sr=sum/kol;
    }
    cin>>x;
}
 
cout<< "Сума равна: " << sum << endl;
cout<< "Количество равно: " << kol << endl;
cout<< "Среднее значение равно: " << sr << endl;
 
    _getch();
    return 0;
}
Заранее спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2015, 02:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос С++: числа типа double (C++):

Можно ли из числа типа double получить 2 числа типа int? - C++
Если можно, то напишите пожайлуста название функции или способ.

В массив типа double записываю целые числа (типа int), но ошибка не вылазиет! - C++
Вот программулька: #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; int main() { double arr={1,2,3,4,5}; ...

Аргумент типа double несовместим с параметром типа double - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;math.h&gt; using namespace std; #define c 40 #define n 5 double po(double...

Аргумент типа double несовместим с параметром типа double* - C++
Функция function должна возвращать количество элементов массива, значение которые превышает значение средне арифметического элементов...

Чтение из файла числа типа double - C++
Добрый вечер! Уже долго бьюсь над тем, что у меня слишком маленькая точность считываемого числа... char word; ifstream...

Разбить число типа double на 2 числа - C++
Добрый день! Попалась мне такая задача - есть 2 интовые переменные, есть число double. Их нужно сложить таким образом : к 1-му интовому...

3
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
07.01.2015, 02:47 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от posol_7 Посмотреть сообщение
Проблема состоит в том, что при выводе на экран среднее значение округляется.
C++
1
sr = (double)sum / kol;
1
posol_7
16 / 16 / 2
Регистрация: 19.11.2014
Сообщений: 156
07.01.2015, 03:04  [ТС] #3
Цитата Сообщение от cooller Посмотреть сообщение
sr = (double)sum / kol;
Благодарю) Все работает))

Добавлено через 7 минут
Цитата Сообщение от cooller Посмотреть сообщение
Код C++
1
sr = (double)sum / kol;
Можете объяснить почему потребовалось указывать тип double сумме и почему в цикле? почему с int не прокатило?
0
IrineK
Заблокирован
07.01.2015, 03:24 #4
Цитата Сообщение от posol_7 Посмотреть сообщение
Можете объяснить почему
sum и kol - переменные типа int. Если они участвуют в операции /, то это - деление нацело.
При выполнении sr=sum/kol; sr присваивается результат деления нацело.

Как этого избежать?
1) Сделать явное приведение типов, как вам посоветовали
или
2) sr=1.0 * sum/kol;
тоже снимет проблемы, т.к. одним из операндов является 1.0 - число типа double
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2015, 03:24
Привет! Вот еще темы с ответами:

Проверить на равенство два числа типа double - C++
Здравствуйте. Подскажите, пожалуйста, как можно сравнить два числа типа double. Одно из них - результат деления, а второе - ввод из...

Непонятно выводится значение числа типа double - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { double a,y,z; cout &lt;&lt; &quot;Vvedite chislo: &quot; &lt;&lt; endl; ...

Проверка числа типа double на чётность/нечётность - C++
В программе необходимо проверить число типа double на то, является оно четным или нет. Это возможно как-то сделать или нет? Обычный метод,...

Вывод числа типа double как есть - C++
Кто-нибудь помогите понять тип double!!! Как вывести заданное число как оно есть? Например, записываем в f число 14049.30493 то нужно...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru