0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 15
1

Ошибка с выводом чисел в программе

04.02.2015, 20:01. Показов 865. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа записывает числа в стандартном виде.
Код
float a,b,x,y
cout<<"Enter a"<<endl;
cin>>a;

x=a;//первоначальное число сохраняется ещё в одну переменную
while(a>1)
{
    b=a;
    a=a/10;}//цикл приводит число к виду типа 423 - 4.23, 8452 - 8.452
    
cout<<b<<endl;
    x=x/b;//первоначальное число делится на полученное (423/4.23)
    cout<<x<<endl;

int i=0;//переменная, в которую записывается число итераций след. цикла
y=x;

while(x>1)
{
    x=x/10;
    i++;
}
cout<<i<<endl;
cout<<b*y<<"="<<b<<"*10^"<<i;//выводится стандартный вид числа
Результаты: на первых 3 скринах степень посчиталась неправильно, на 2 следующих - нормально. Вводил ещё множество 6-значных чисел - всё считалось нормально.
Что за мистика?
Миниатюры
Ошибка с выводом чисел в программе   Ошибка с выводом чисел в программе   Ошибка с выводом чисел в программе  

Ошибка с выводом чисел в программе   Ошибка с выводом чисел в программе  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2015, 20:01
Ответы с готовыми решениями:

Ошибка в программе со строками и считыванием/выводом из файла
Здравствуйте! Столкнулся с ошибкой в своей программе, помогите выяснить причину. Само условие...

Ошибка в программе сравнения двух чисел
Проблема в сравнении двух чисел-вывод в обоих случаях один OS Linux Ubuntu x86 64 section...

Ошибка в программе поиска чисел-палиндромов
Здравствуйте. Задача такая: из Memo1 найти все числа-палиндромы и вывести их в Memo2. Программа...

В чем ошибка при выводе двух целых чисел,нахождения результата их деления и выводом результата на экран?
решил вывести с клавиатуры два целых числа,написал программу как написано в учебнике Фаронова В.В....

3
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
04.02.2015, 20:05 2
потеря точности, однако
1
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 15
04.02.2015, 22:41  [ТС] 3
Погуглил и, как понял, из-за плавающей точки, но неправильное значение-то именно целой переменной int(i). Можно ли от этого как-то подстраховаться? Или единственная гарантия с этим не столкнуться - использовать только целые числа?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
04.02.2015, 23:06 4
Цитата Сообщение от vladimir86 Посмотреть сообщение
но неправильное значение-то именно целой переменной int(i).
цикл у тебя крутится не всегда правильно именно из за потери точности
вот так
C++
1
 i=x;
отсечет дробную часть и оставит целую без округлений
и 2.9 и 2.1 даст результат 2, попробуй может тебе это и надо
0
04.02.2015, 23:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2015, 23:06
Помогаю со студенческими работами здесь

Ошибка в программе определения процента чисел в строке
программа состоит из модуля unit и основной части, в конце выдает ошибку, нужно чтобы программа...

Затруднения с выводом системного времени в программе
Здравствуйте! Подскажите пожалуйста, как исправить ошибку. У меня две формы. Первая - примитивная...

Проблема с выводом больших цифр в программе
Доброго времени суток уважаемые форумчани. Помогите пожалуйста в решении такой проблемы. Прога не...

Ошибка 113 в программе определения большего из двух чисел
program 5z; var a,b,c:integer; begin a:=2; b:=6; if a&lt;b then ...

Интерпретатор php в программе с выводом результата в WebBrowser
Возникла необходимость встроить интерпретатор php в свою программу, и чтобы результат выдавался в...

Ошибка в программе для нахождения наибольшего произведения из введенных чисел
Добрый вечер, не могли бы вы тыкнуть меня в ошибку в данной программе? Программа для нахождения...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru