В окне консоли вместо нужных значений выводятся нули или единицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

При написании программы столкнулся с проблемой такого плана. Делал лабораторную работу 21 задание, написал код, он компилировался без ошибок, вроде все норм, но в окне консоли вместо нужных значений выводятся нули или единицы. Возможно он как-то округляет, если да то напишите как отключить это. ps: скрин консоли и пдф лабы прилагаеться. спасибо
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
int main()
{
     SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    float e,x,sum,sl;
 long int n;
    printf("Введите точность: ");
    scanf("%lf",&e);
    do
    {
    printf("Введите x (-1<x<1):  ");
    scanf("%lf",&x);
    if (x<-1||x>1 )  printf("Значение x не удовлетвряет условию");
    }
    while (x<-1||x>1);
    n=0;
    sum=0;
    sl=0;
 
    while (fabs(sl)>e)
    {
        sum=sum+sl;
        sl=(n-1)*(2*n-1)/2*n*x*x;
        n++;
        printf("%lf %lf\n",n,sl);
 
    }
      printf("Сумма ряда:%lf\n",sum);
        printf("Сумма по формуле:%f\n",exp(x));
          printf("Количество интераций:%ld",n);
          return 0;
}

Решение задачи: «В окне консоли вместо нужных значений выводятся нули или единицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
int main()
{
     SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    float e,x,sum,sl;
 long int n;
    printf("Введите точность: ");
    scanf("%lf",&e);
    do
    {
    printf("Введите x (-1<x<1):  ");
    scanf("%lf",&x);
    if (x<-1||x>1 )  printf("Значение x не удовлетвряет условию");
    }
    while (x<-1||x>1);
    n=0;
    sum=0;
    sl=0;
 
    while (fabs(sl)>e)
    {
        sum=sum+sl;
        sl=(n-1)*(2*n-1)/2*n*x*x;
        n++;
        printf("%lf %lf\n",n,sl);
 
    }
      printf("Сумма ряда:%lf\n",sum);
        printf("Сумма по формуле:%f\n",exp(x));
          printf("Количество интераций:%ld",n); /* Вместо этого пишешь printf("la-la-la:%X.Yld",n), где X это ширина числа, а Y это его точность - количество знаков после запятой. Поэкспериментируй немного, ставь вместо X Y какие-нибудь числа. и смотри, что меняется. Я просто не совсем понял, что ты хочешь получить в ответе. */
          return 0;
}

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

  1. Подключение необходимых библиотек для работы с консолью, числами с плавающей точкой, математикой и окнами.
  2. Установка кодировки консоли на 1251.
  3. Объявление переменных: e, x, sum, sl, n.
  4. Ввод точности и значения x.
  5. Проверка значения x на соответствие условию.
  6. При несоответствии значению x выводится сообщение об ошибке.
  7. При соответствии значению x начинается расчет суммы ряда.
  8. Выполняется цикл, пока значение суммы ряда не станет меньше заданной точности.
  9. Внутри цикла выполняется расчет суммы ряда, значение переменной sl присваивается сумме ряда, увеличивается значение переменной n, выводится значение переменных n и sl.
  10. После достижения заданной точности выводится сообщение о количестве итераций.
  11. Выполняется расчет значения по формуле exp(x) и выводится на экран.
  12. Выводится сообщение о сумме ряда.
  13. Выводится сообщение о количестве итераций.
  14. Возвращается 0, завершая работу программы.

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


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

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

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