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

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

Войти
Регистрация
Восстановить пароль
 
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
#1

не могу понять ошибку типов переменных при деление идет обращение в ноль - C++

22.09.2012, 10:27. Просмотров 905. Ответов 3
Метки нет (Все метки)

проблема в том что при деление у ми идет обращение в 0, хотя по сути его не должно быть
C++
1
2
3
4
5
6
7
8
    const int m=10, n=1000; // по заданию m-разбиение, n- кол-во запусков
        
    for(int i=1;i<=m;i++)
    {       
        float v;
        v=i/m;
        cout<<"i m"<<":="<<i<<" "<<m<<endl;
        cout<<"v:="<<v<<endl;
}
объясните почему v обращается постоянно в 0? хотя по идеи должно быть 0.1 0.2 и т. д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 10:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не могу понять ошибку типов переменных при деление идет обращение в ноль (C++):

Выдает ошибку при компиляции. Не могу понять почему - C++
Помогите с кодом. Я вижу что ошибка уровня самых низов но не могу понять все равно что тут не так. Вот эта ошибка: // error...

не могу понять,почему не идет - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; struct crs Matrix { int N; int Nz;...

Не могу понять, как исправить ошибку в при вызове методов класса - C++
Не могу понять, как испровить ошибку в при вызове методов классa: #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; ...

Компилятор выдает ошибку при объявлении массива. Не могу понять где соль - C++
Объясните пожалуйста в чем моя ошибка. Вот исходник #include &lt;iostream&gt; // cin, cout,endl #include &lt;math.h&gt; // Мат функции ...

Не могу понять почему вылазят нули. double и целочисленное деление - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; void main() { int **mas,i,j,n,m; double s; cout&lt;&lt;&quot;enter size of array&lt;&lt;n&lt;&lt;m&quot;&lt;&lt;endl; ...

Распределение памяти под объекты числовых типов. Не могу понять - C++
Может быть немного не в тему пишу, т.к. этот вопрос не относится конкретно к языку С++, просто столкнулся с этим, когда начал изучать этот...

3
Suvitruf
15 / 6 / 1
Регистрация: 22.09.2012
Сообщений: 83
22.09.2012, 10:30 #2
Цитата Сообщение от White Luna Посмотреть сообщение
проблема в том что при деление у ми идет обращение в 0, хотя по сути его не должно быть
C++
1
2
3
4
5
6
7
8
    const int m=10, n=1000; // по заданию m-разбиение, n- кол-во запусков
        
    for(int i=1;i<=m;i++)
    {       
        float v;
        v=i/m;
        cout<<"i m"<<":="<<i<<" "<<m<<endl;
        cout<<"v:="<<v<<endl;
}
объясните почему v обращается постоянно в 0? хотя по идеи должно быть 0.1 0.2 и т. д.

У вас i - int и m,n- int

Поэтому при делении на выходе int

Надо v=(float)i/m;
0
CableGuy
14 / 14 / 1
Регистрация: 29.03.2012
Сообщений: 41
22.09.2012, 10:35 #3
int содержит только целые числа. То есть при целочисленном делении (операция '/'), будет само собой
в результате целые числа.
Вы делите m(10) на n(1000), в числе m ноль тысяч, вот и результат.
0
cmath
Модератор
2443 / 1684 / 134
Регистрация: 11.08.2012
Сообщений: 3,344
Завершенные тесты: 6
22.09.2012, 11:01 #4
Цитата Сообщение от CableGuy Посмотреть сообщение
int содержит только целые числа. То есть при целочисленном делении (операция '/'), будет само собой
в результате целые числа.
Вы делите m(10) на n(1000), в числе m ноль тысяч, вот и результат.
White Luna, т.е. когда вы присваиваете переменной типа float результат деления друг на друга целых чисел, то сначала программа вычисляет частное как целое, а уже после этого приводит его к float и происходит присваивание. При делении (int) меньшего на большее получается нуль.
0
22.09.2012, 11:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2012, 11:01
Привет! Вот еще темы с ответами:

Не могу понять ошибку - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; int main () { double x,a,d,h,t,e,g,b,c,z,y,s,rezylt; не могу понять чем программе sqrt...

Не могу понять ошибку - C++
Пытаюсь решить вот эту задачу http://www.cyberforum.ru/cpp-beginners/thread356063.html Есть решения на бэйсике вот...

Не могу понять ошибку - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; int main() { double x=3.741, y=-0.825,z=0.160, A,...

Не могу понять ошибку - C++
Всем привет. Делаю задание из универа. В принципе все работает с использованием дружественного класса, но хочется обойтись без...


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

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

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