Обработка вещественных чисел в 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);

Объяснение кода листинга программы

  1. Ввод данных с помощью функции scanf.
  2. Первый аргумент функции scanf - это формат ввода (в данном случае %lf), который указывает на то, что мы хотим ввести вещественное число.
  3. Второй аргумент функции scanf - это адрес переменной, в которую мы хотим сохранить введенное значение (в данном случае &ad).
  4. Функция scanf считывает введенное пользователем значение и сохраняет его в переменной ad.
  5. Аналогично происходит ввод значения для переменной bd.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы