Не можете получить программу Math C ++ для работы [дубликата] -- c++ пол Связанный проблема

Can't get math c++ program to work [duplicate]


1
vote

проблема

русский
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»>
Этот вопрос уже есть ответы здесь :
Почему подразделение приводит к нулю вместо десятичных? (5 ответов)
Закрыто 6 лет назад .

Так что я пытаюсь сделать одну из моих первых очень простых математических программ в C ++. проблема в том, что Я не могу получить потодды функции делать то, что я хочу. Нет проблем с несколькими двумя переменными <код> (x,y) , который работает отлично. Проблема возникает, когда я пытаюсь заменить возврат <код> x*y*100 с возвратом <код> (x/y)*100 . В этом случае это всегда возвращает значение 0?

надеется, что кто-то там может помочь мне точно определить мою ошибку.

Код выглядит так:

 <код> #include "stdafx.h" #include <iostream> int x; int y; int potodds(int x, int y) {    return x * y * 100; //(x/y)*100; } int main() {    using namespace std;     cout << "what's the size of the pot?" << endl;    cin >> y;     cout << "what's the size of the bet?" << endl;    cin >> x;     cout << "your potodds are:" << endl;    cout << potodds(x, y) << endl;     return 0; }   

Благодаря EBYROB я получил решение.

Проблема, которую у меня была то, что я пытался разделить целое число, это было присвоено десятичное значение, и по определению целое число может содержать только целые числа. Результатом было то, что целое число было округнуто до нуля.

Английский оригинал

So i am trying to make one of my first very simple math programs in c++. the problem is that i can't seem to get the function potodds to do what i want. There is no problem in getting it to multiple the two variables (x,y) that works perfectly fine. the problem occurs when i try to replace return x*y*100 with return (x/y)*100. in this case it always return the value 0?

Hopes that someone out there can help me pinpoint my mistake.

The code looks like this:

#include "stdafx.h" #include <iostream> int x; int y; int potodds(int x, int y) {    return x * y * 100; //(x/y)*100; } int main() {    using namespace std;     cout << "what's the size of the pot?" << endl;    cin >> y;     cout << "what's the size of the bet?" << endl;    cin >> x;     cout << "your potodds are:" << endl;    cout << potodds(x, y) << endl;     return 0; } 

Thanks to Ebyrob i got the solution.

the problem that I was having was that I was trying to divide an integer, that was assigned a decimal value and by definition an integer can only contain whole numbers. The result was that the integer was rounded down to zero.

</div
  
         
         

Список ответов

1
 
vote
vote
Лучший ответ
 

x и y определяются как интегральные значения. Интегральное разделение возвращает только фактор. Так что, если X меньше Y, то X / Y будет равен 0.

Так было бы лучше заменить экспрессию <код> ( x /y ) * 100 для <код> ( 100 * x ) / y

Иначе используйте числа поплавка

Например

 <код> ( double )x / y * 100   
 

x and y are defined as integral values. The integral division returns only the quotient. So if x is less than y then x /y will be equal to 0.

So it would be better to substitute expression ( x /y ) * 100 for ( 100 * x ) / y

Otherwise use float numbers

For example

( double )x / y * 100 
</div
 
 
       
       
0
 
vote

Изменение Int для двойного следует решить проблему, но и «с использованием пространства имен STD»; всегда за пределами основных, когда я программирую. Я не знаю, влияет ли это что-нибудь, но вы можете подумать о том, чтобы положить его выше вашей основной функции, потому что это может вызвать проблему сейчас или может вызвать проблему в другой программе. Я думаю, что это вопрос о том, что он является глобальным или частным, но у меня будет его вне главной, так что любые другие функции, которые вы используете, можете использовать ее (предполагая, что я прав).

 

Changing int to double should solve the problem but also "using namespace std;" is always outside of main when I program. I don't know if this affects anything but you might consider putting it above your main function because it might be causing a problem now or it might cause a problem in another program you make. I think it is a matter of it being global or private but I would have it outside of main so that any other functions you use can use it ( assuming I'm right ).

</div
 
 
0
 
vote

Если вы разделите два целых числа, результат будет целым числом (Civent: остаток отбрасывается).

Так, <код> 1 / 2 -> 0 вместо <кода> 0.5 .

Обратите внимание, что <код> (1 / 2) * 100 поэтому <код> 0 * 100 -> 0 , пока, как говорит VLAD, <Код> 100*1/2 -> 100/2 -> 50 , который вы хотите.

 

If you divide two integers, the result will be an integer (the quotient: the remainder is discarded).

So, 1 / 2 -> 0 instead of 0.5.

Note also that (1 / 2) * 100 is therefore 0 * 100 -> 0, while, as Vlad says, 100*1/2 -> 100/2 -> 50, which is what you want.

</div
 
 

Связанный проблема

6  Теоретически, находит_енди параллельно?  ( In theory is find end parallelizable ) 
В настоящее время я работаю над open -Под предложению Для достижения параллельной функциональности проекту я работаю, но я столкнулся с дорожным блоком с f...

0  Проблемы с повышением :: ptr_vector и Boost :: любой  ( Problems with boostptr vector and boostany ) 
Хорошо, так что я сомневался, я хочу знать, если это возможно: Я использую базу данных, с общими данными (строки, ints, bools и т. Д.). Всякий раз, когда об...

7  GLREADPIXELS () Устанавливает ошибку GL_inValid_Operation  ( Glreadpixels sets gl invalid operation error ) 
Я пытаюсь реализовать цвет выбора с FBO. У меня есть многосмысленные FBO (FBO [0]), которые я использую для визуализации сцены, и у меня нет многоспущенных FB...

1  Opencv Изображение Цветовое пространство Преобразование с использованием CVTColor  ( Opencv image color space transformation using cvtcolor ) 
Я использую ниже OpenCV API для преобразования цветового пространства: <код> cvtColor(<input mat>, <output mat>, COLOR_RGB2RGBA); Однако выходное изобра...

4  Преобразовать фильм в Openni * .oni видео  ( Convert movie to openni oni video ) 
the библиотека Kinect Openni использует пользовательский формат видеофайла для хранения видеороликов, которые содержат информацию RGB + D. Эти видео имеют р...

2  Новый DataType, который может иметь количество до 100 цифр  ( New datatype which can have numbers upto 100 digits ) 
Примечание. Это был вопрос интервью и может не иметь фактического случая использования в настоящее время Вопрос должен был разработать класс, который может ...

1  C ++ - утечка памяти, вызванная использованием размещения New Over * этот указатель?  ( C memory leak caused by using placement new over this pointer ) 
Как известно, размещение New просто строит объект без выделения любой памяти. Также все члены в классе <Код> 5.5.10 являются объектами вместо указателей, хот...

0  Как получить несколько наборов результатов с Poco :: Data?  ( How to fetch multiple result sets with pocodata ) 
Я прочитал Poco :: Руководство пользователя данных и упоминается, что Библиотека имеет поддержку нескольких наборов результатов. Существует пример для этой ...

0  Проблема дизайна - создание шрифта Global (C ++, Marmalade)  ( Design issue making a font global c marmalade ) 
У меня есть проект Marmalade C ++, где встроенный в шрифте не масштабируется на экран. Чтобы справиться с этим вопросом, я делаю пользовательский шрифт, котор...

2  Замена DLL со статической библиотекой  ( Replacing a dll with the static library ) 
Ударная точка: У меня есть код C ++, который ссылается на стороннюю статическую библиотеку, которая ссылается на WS2_32.Lib. <Сильная> Цель: Я изучаю спо...

1  STD :: CIN непосредственно к функции  ( Stdcin directly to a function ) 
Недавно я наткнулся на следующую часть кода. Я не знаю, имеет ли это какой-либо смысл, я просто пытаюсь его понять: <код> object Gender extends Enumeration ...

-1  Мусор с указателями в классе, C ++  ( Garbage with pointers in a class c ) 
Я использую Borland Builder C ++. У меня есть утечка памяти, и я знаю, что это должно быть из-за этого класса, который я создал, но я не уверен, как это испра...

2  ODBC и NLS_LANG  ( Odbc and nls lang ) 
Допустим, я создал две разные исполняемые файлы программы, например, в C ++. По какой-то причине две программы внутреннее представление текста отличаются др...

23  Почему я не могу открыть видео AVI в OpenCV?  ( Why cant i open avi video in opencv ) 
Я только что написал простой пример чтения видео с OpenCv2.3.1, но кажется, что я не могу открыть видео AVI в любом случае: ( <Код> VideoCapture capture("gui...

1  Установка значения строки и строки  ( Setting value of string to string ) 
У меня есть строка и AMP; Параметр, и я хочу назначить его строковым параметром. Как это можно сделать. ...