Циклы с последовательным накоплением результатов.Неработает программа в чем ошибка - 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); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с математическими функциями, выводом данных и обработкой ошибок.
- Определяем функцию
f
, которая вычисляет квадратный корень из числа. - В функции
main
инициализируем переменныеsum
иtmp
со значением 0, а переменныеm
иn
с определенными значениями. - Выводим на экран текст
sum roots from 2 to 9 =
с помощью функцииfprintf
. - Запускаем цикл
for
отm
доn
включительно. - Внутри цикла вычисляем значение функции
f
для текущего значения переменнойi
и сохраняем его в переменнойtmp
. - Добавляем значение
tmp
к переменнойsum
. - Проверяем значение
tmp
и если оно отрицательное увеличиваем счетчикcount
на единицу. - После завершения цикла выводим на экран значение переменной
sum
с помощью функцииfprintf
. - Завершаем программу с кодом
EXIT_SUCCESS
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д