Обработка вещественных чисел в C по формуле - C (СИ)
Формулировка задачи:
Добрый день.
Возникла проблема с выполнением простейшей лабораторной по Си.
Где и что я упустил?
Задание:
Создать программу, производящую вычисления по формуле: , где a,b вводятся с клавиатуры при помощи функции scanf(). Используйте для переменных сначала тип данных int, потом double. Если в результате вычислений получились расхождения, объясните их. С интом разобрался, программа выдаёт ожидаемый результат. А вот с даблом творится нечто мне неведомое. Следующий код содержит, собственно, вторую часть задачи.
Листинг программы
- #include "stdafx.h"
- #include "stdlib.h"
- #include "math.h"
- #include "locale.h"
- void main()
- {
- setlocale(LC_ALL, "Russian");
- double ad,bd;
- //ввод значений
- printf("Введите ненулевое число a:\n");
- scanf("%f", &ad);
- printf("Введите ненулевое число b:\n");
- scanf("%f", &bd);
- //рассчёты
- double doubleans=pow(tan(2*ad/bd),2)-pow(1/tan(2*ad/bd),2);
- printf("\n%f\n%f\n%f\n", ad,bd,2*ad/bd); // попытка вычислить проблему
- //вывод ответа
- printf("\nОтвет (вещественный):\n");
- printf("%.10f", doubleans);
- printf("\n");
- system("pause");
- }
Пример выполнения:
Введите ненулевое число a:
2
Введите ненулевое число b:
3
-92559604377396321000000000000000000000000000000000000000000000,000000
-92559604425286806000000000000000000000000000000000000000000000,000000
2,000000
Ответ (вещественный):
4,5649487942
Для продолжения нажмите любую клавишу . . .
Должно быть:
Листинг программы
- >> f
- f =
- tan((2*a)/b)^2 - cot((2*a)/b)^2
- >> subs(f,[a b],[2 3])
- ans =
- 17.012606210674633
Решение задачи: «Обработка вещественных чисел в C по формуле»
textual
Листинг программы
- scanf("%lf", &ad);
- scanf("%lf", &bd);
Объяснение кода листинга программы
- Ввод данных с помощью функции scanf.
- Первый аргумент функции scanf - это формат ввода (в данном случае %lf), который указывает на то, что мы хотим ввести вещественное число.
- Второй аргумент функции scanf - это адрес переменной, в которую мы хотим сохранить введенное значение (в данном случае &ad).
- Функция scanf считывает введенное пользователем значение и сохраняет его в переменной ad.
- Аналогично происходит ввод значения для переменной bd.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д