Циклы с последовательным накоплением результатов.Неработает программа в чем ошибка - C (СИ)

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

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

Нужно посчитать SUM=\sum F и количество k (F<0)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main ()
{
const float C=3.7;
const int A=7;
int D,DN,DK,HD;
float B,BN,BK,HB,S,F,dt;
float SUM=0;
unsigned int k=0;
char i=0;
printf ("Vvedite D (nachalnoe)="); scanf ("%d",&DN);
printf ("Vvedite D (konechnoe)="); scanf ("%d",&DK);
printf ("Vvedite shag D ="); scanf ("%d",&HD);
printf ("Vvedite B (nachalnoe)="); scanf("%f",&BN);
printf ("Vvedite B (konechnoe)="); scanf("%f",&BK);
printf ("Vvedite shag B ="); scanf("%f",&HB);
dt=0.001*HB;
printf("Rezultati:");
D=DN;
while(D <=DK+dt)
{
for(B=BN;B<=BK;B+=HB)
{
printf("D=%7.5d\nB=%10.3f\n",D,B);
S=C*D-A+B;
if(D>2)
printf("S=%8.4f\n",S);
if (atan(B)!=M_PI/2)
{
F=(S*log2(D))/(M_PI/2-atan(B));
if(F<0) SUM+=F;
k++;
printf("F=%10.3f\nSUM=%10.3f\nk=%4d\n",F,SUM,k);
}
else
printf("F-net\n\n");
i++;
if(i==24)
{
printf("Dlya prodolgeniya nagmite lybyy klavishy\n");
i=0;
}
D+=HD;
}
B+=HB;
}
printf("OVER");
return 1;
}
посчитать и k кол-во (F<0)

Решение задачи: «Циклы с последовательным накоплением результатов.Неработает программа в чем ошибка»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <errno.h>
 
double f (double arg)
{
    return sqrt(arg);
}
 
int main()
{
    double sum = 0, tmp;
    unsigned m = 2, n = 9, i, count = 0;
 
    fprintf(stdout, "sum roots from %u to %u = ", m, n);
 
    for (i = m; i <= n; i++)
    {
        tmp = f(i);
        sum += tmp;
 
        if (tmp < 0)
            count++;
    }
 
    fprintf(stdout, "%lf\n", sum);
 
    exit(EXIT_SUCCESS);
}

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

  1. Включаем необходимые заголовочные файлы для работы с математическими функциями, выводом данных и обработкой ошибок.
  2. Определяем функцию f, которая вычисляет квадратный корень из числа.
  3. В функции main инициализируем переменные sum и tmp со значением 0, а переменные m и n с определенными значениями.
  4. Выводим на экран текст sum roots from 2 to 9 = с помощью функции fprintf.
  5. Запускаем цикл for от m до n включительно.
  6. Внутри цикла вычисляем значение функции f для текущего значения переменной i и сохраняем его в переменной tmp.
  7. Добавляем значение tmp к переменной sum.
  8. Проверяем значение tmp и если оно отрицательное увеличиваем счетчик count на единицу.
  9. После завершения цикла выводим на экран значение переменной sum с помощью функции fprintf.
  10. Завершаем программу с кодом EXIT_SUCCESS.

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


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

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

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