Найти средне арифметическое значений функции больших заданного числа - C (СИ)
Формулировка задачи:
Собственно написал данную программу, которая должна выводит таблицу подставляя в X значения от минус 3 до 3 с шагом 0.1 в формулу y=1.7*x-6.3*x+2.7 и выполнить два задание, найти средне арифметическое таких значений функции, которые больше числа М. и Сумму таких значений функции, которые больше числа M
так как эта первая моя прога на С тут же возникли проблемы) Первая, на экран не выводится последнее значение когда X равен 3. И не находит почему-то два дополнительных задания выводя в ответ нули, хотя y больше M в этой функции есть. Помогите пожалуйста разобраться в чём собственно заключается проблема, что я не так написал и как надо всё это дело исправить что бы всё это заработало. строго не судите так как до этого писал только на паскале) и возможно у меня в этой программе вообще написан какой-то бред) из-за чего всё это и не работает. Но очень хочется разобраться в чём же проблема и как её исправить. Зарание всем спасибо за ответы..
#pragma argsused #include <stdio.h> #include <math.h> #define T 0.1 #define L -3 #define R 3 int main() { double x,y,M,z,t,K; printf("vvedite M \n"); scanf("%f", &M); x=L; z=0; t=0; while(x<=R) {y=1.7*x-6.3*x+2.7; printf("%10.4f%10.4f\n",x,y); x=x+T; if(y>M) {z=z+y; t++;} } K=z/t; printf("%f\n",z); printf("%f",K); getchar(); getchar(); return 0; }
Решение задачи: «Найти средне арифметическое значений функции больших заданного числа»
textual
Листинг программы
#pragma argsused #include <stdio.h> #include <math.h> #define T 0.1 #define L -3 #define R 3 int main() { double x,y,M,z,t,K; printf("vvedite M \n"); scanf("%f", &M); x=L; z=0; t=0; while(x<=R) { y=1.7*x-6.3*x+2.7; printf("%10.4f%10.4f\n",x,y); x=x+T; if(y>M) { z=z+y; t++; } } K=z/t; printf("Suma : %f\n",z); printf("SA : %f",K); getchar(); getchar(); return 0; }
Объяснение кода листинга программы
- Начало программы.
- Подключение необходимых библиотек:
- #include
для работы с консолью; - #include
для работы с математическими функциями.
- #include
- Определение констант:
- #define T 0.1 - шаг изменения переменной x;
- #define L -3 - левая граница интервала для переменной x;
- #define R 3 - правая граница интервала для переменной x.
- Определение переменных:
- double x,y,M,z,t,K; - типы данных переменных: double (с плавающей точкой).
- Ввод значения переменной M с помощью функции scanf().
- Инициализация переменных x, z, t:
- x=L; - начальное значение переменной x;
- z=0; - начальное значение переменной z;
- t=0; - начальное значение переменной t.
- Цикл while(x<=R):
- y=1.7x-6.3x+2.7; - вычисление значения переменной y по формуле y = 1.7x - 6.3x + 2.7;
- printf(
%10.4f%10.4f\n
,x,y); - вывод значения переменных x и y с отступами; - x=x+T; - увеличение значения переменной x на шаг T.
- Проверка условия if(y>M):
- if(y>M) - проверка, больше ли значение переменной y значения переменной M;
- {z=z+y; t++;} - если условие выполняется, то прибавление значения переменной y к переменной z и увеличение переменной t на единицу.
- Вычисление значения переменной K:
- K=z/t; - вычисление среднего арифметического значений переменной z деленное на значение переменной t.
- Вывод значений переменных z и K:
- printf(
Suma : %f\n
,z); - вывод значения переменной z; - printf(
SA : %f
,K); - вывод значения переменной K.
- printf(
- Ожидание нажатия клавиш getchar().
- Конец программы return 0;.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д