Найти средне арифметическое значений функции больших заданного числа - C (СИ)

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

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

Собственно написал данную программу, которая должна выводит таблицу подставляя в X значения от минус 3 до 3 с шагом 0.1 в формулу y=1.7*x-6.3*x+2.7 и выполнить два задание, найти средне арифметическое таких значений функции, которые больше числа М. и Сумму таких значений функции, которые больше числа 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;
}
так как эта первая моя прога на С тут же возникли проблемы) Первая, на экран не выводится последнее значение когда X равен 3. И не находит почему-то два дополнительных задания выводя в ответ нули, хотя y больше M в этой функции есть. Помогите пожалуйста разобраться в чём собственно заключается проблема, что я не так написал и как надо всё это дело исправить что бы всё это заработало. строго не судите так как до этого писал только на паскале) и возможно у меня в этой программе вообще написан какой-то бред) из-за чего всё это и не работает. Но очень хочется разобраться в чём же проблема и как её исправить. Зарание всем спасибо за ответы..

Решение задачи: «Найти средне арифметическое значений функции больших заданного числа»

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;
}

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

  1. Начало программы.
  2. Подключение необходимых библиотек:
    • #include для работы с консолью;
    • #include для работы с математическими функциями.
  3. Определение констант:
    • #define T 0.1 - шаг изменения переменной x;
    • #define L -3 - левая граница интервала для переменной x;
    • #define R 3 - правая граница интервала для переменной x.
  4. Определение переменных:
    • double x,y,M,z,t,K; - типы данных переменных: double (с плавающей точкой).
  5. Ввод значения переменной M с помощью функции scanf().
  6. Инициализация переменных x, z, t:
    • x=L; - начальное значение переменной x;
    • z=0; - начальное значение переменной z;
    • t=0; - начальное значение переменной t.
  7. Цикл 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.
  8. Проверка условия if(y>M):
    • if(y>M) - проверка, больше ли значение переменной y значения переменной M;
    • {z=z+y; t++;} - если условие выполняется, то прибавление значения переменной y к переменной z и увеличение переменной t на единицу.
  9. Вычисление значения переменной K:
    • K=z/t; - вычисление среднего арифметического значений переменной z деленное на значение переменной t.
  10. Вывод значений переменных z и K:
    • printf(Suma : %f\n,z); - вывод значения переменной z;
    • printf(SA : %f,K); - вывод значения переменной K.
  11. Ожидание нажатия клавиш getchar().
  12. Конец программы return 0;.

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


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

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

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