Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
bogdan_92
1

Подскажите почему происходит ошибка в вычислении

14.10.2012, 20:25. Просмотров 436. Ответов 1
Метки нет (Все метки)

При введении следующих параметров (60 2.3 3) выходит ответ 4rub. 13cop. хотя должен выдавать 4rub. 14cop. , не могу разобраться почему происходит такая ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <math.h>
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ float  gas_consumption, l_price, cost, prior_cost_cop;
int distance, cost_rub, cost_cop;
printf("Enter next values:\ndistance to the country house\ngas consumption\nliter price\n");
scanf("%d %f %f", &distance, &gas_consumption, &l_price);
cost=(distance*gas_consumption/100)*l_price;
printf("%f\n",cost);
cost_rub=cost;
prior_cost_cop=cost-cost_rub;
printf("%f\n",prior_cost_cop);
cost_cop=prior_cost_cop/0.01;
printf("cost of the trip to the country house = %drub. %dcop.\n", cost_rub,cost_cop);
system("pause");
return 0;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2012, 20:25
Ответы с готовыми решениями:

Определить, почему во втором варианте программы происходит переполнение при вычислении переменной dist
Добрый вечер. Не могу понять, почему во втором варианте программы происходит переполнение при...

Почему происходит ошибка линковки?
Всем привет!Только начал изучать сети на c++,нашел пример в интернете: это сервер. // Server ...

Почему происходит ошибка сегментирования?
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include&lt;iostream&gt; #include &lt;stdlib.h&gt; #define SPCHARS &quot;...

Почему происходит ошибка с кодом в 8 строк?
Почему-то в конце первой строки выводит a - 1. a = int( input() ) b = int( input() ) c = int(...

1
DU
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.10.2012, 20:42 2
это особенности работы с числами с плавающей точкой.
вот сюда посмотрите
http://liveworkspace.org/code/... 8c294e162a
если копейки выводить как число с плавающей точкой, то выражение prior_cost_cop/0.01 равно 13,9999...
в вашем же варианте это 13.999999 преобразуется в целое число. в таком случае все, что после запятой отбрасывается и получается 13
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2012, 20:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Почему происходит ошибка доступа к памяти?
GetK32: __1: cmp byte ptr ,00h jz WeFailed cmp word...

Почему происходит ошибка с кодом в 8 строк?
Почему-то в конце первой строки выводит a - 1. a = int( input() ) b = int( input() ) c = int(...

Ошибка, не понимаю почему так происходит
Не нужен ответ от задачи, но сам начал решать, возникает ошибка, ошибка в for или range(), но не...

Почему происходит ошибка времени выполнения?
прошу помощи в поиске ошибки! уже 2часа пытаюсь найти и никак... Тоже задание по структуре. над...


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

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

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