Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 171
#1

Исправить программу - C++

13.10.2013, 20:40. Просмотров 225. Ответов 4
Метки нет (Все метки)

Дано выражение. По законам математики вне зависимости от значений переменных a и b выражение всегда имеет значение 1.
Нужно исправить программу, чтобы она выдавала значение 1.
Текст:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
void main(void)
{
   float a,b,c,t1,t2,t3;
   clrscr();
   a=95.0; //a=100.0
   b=0.02;
   t1=(a+b)*(a+b);
   t2=-2.0*a*b-a*a;
   t2=(a*a)+(2.0*a*b);
   t3=b*b;
   c=(t1-t2)/t3;
   printf("c=%f",c);
   getch();
}
P.S.: Если решение слишком простое, прошу не судить строго - я новичок в C и еще многого не знаю.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 20:40     Исправить программу
Посмотрите здесь:

Исправить программу - C++
Здравствуйте! У меня рабочая программа, которая удваивает каждый символ в строке, все работает) Препод сказал, что нужно сделать эту...

Исправить программу С++ - C++
Помогите пожалуйста исправить программу. Нужно , чтобы массив задавался с клавиатуры , а не выдавал уже имеющиеся числа. Массив должен...

Исправить программу - C++
привет ,не могу понять что за проблема с этой программой)) помогите плиз понять ошибки,буду признательна!! #include &lt;iostream&gt; using...

Исправить программу - C++
Дана строка символов. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами. #include &lt;iostream&gt; #include...

Исправить программу на строки - C++
Дана последовательность слов длиной N. Слова состоят из строчных латинских букв и разделены одним или несколькими пробелами. Получить...

Нужно исправить программу - C++
Задание: Ввести класс для работы с объектом &quot;Рациональная дробь&quot; И организовать: а)сложение(вычитание) двух дробей; б)приведение дроби...

Помогите исправить программу - C++
Надо чтоб программа генерировала случайные цифры от 100 до 300 а потом записывала их в файл вот исходник все перепробывал, но в файле...

Исправить программу суммы - C++
Здравствуйте,помогите исправить программу,в ней всё работает но я сделал не так,нужно чтобы сумма сравнивалась со значением справа на...

Как исправить программу? - C++
Вводится длина одномерного массива и значения его элементов. Удалить из исходного массива уникальные (не повторяющиеся) элементы. Результат...

Массивы (исправить программу) - C++
посмотрите, пожалуйста, прогу. вроде всё правильно, но только почему числа не меняются?? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
13.10.2013, 20:59     Исправить программу #2
Rakot568, программа работает нормально! имхо это специфика задания-или изза большой разности a b или еще что теряется точность
zss
Модератор
Эксперт С++
6284 / 5887 / 1909
Регистрация: 18.12.2011
Сообщений: 15,113
Завершенные тесты: 1
13.10.2013, 21:08     Исправить программу #3
Поменяйте float на double.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
13.10.2013, 21:12     Исправить программу #4
zss, ништяк-работает!=)
zss
Модератор
Эксперт С++
6284 / 5887 / 1909
Регистрация: 18.12.2011
Сообщений: 15,113
Завершенные тесты: 1
13.10.2013, 23:06     Исправить программу #5
ошибка возникает, когда b -маленькое.
Тогда значение, которое вносит b в произведение
(a+b)*(a+b) выходит за разрядность числа.
a=1,b=1e-5 дает
(1.00001)*(1.00001) - 1.0000200001
единицу в 10 разряде, которая пропадает для float.
Yandex
Объявления
13.10.2013, 23:06     Исправить программу
Ответ Создать тему
Опции темы

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