Пожалуйста, подскажите где ошибка! - C (СИ)

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

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

Делал программу которая выводит значения функции на интервале... Но она работает не правильно и бесконечно выдает одно и то же значение. Прошу, помогите разобраться где ошибся... язык С
#include <stdio.h>
 
int main()
{
    float a, b, c, x, d, e, f, Xmin, Xmax, dx;
    printf("vvedite shag dx");
    scanf("%f", &dx);
    printf("Vvedite Xmin");
    scanf("%f", &Xmin);
    printf("Vvedite Xmax");
    scanf("%f", &Xmax);
    printf("vvedite a");
    scanf("%f", &a);
    printf("vvedite b");
    scanf("%f", &b);
    printf("vvedite c");
    scanf("%f", &c);
    for (x=Xmin; x<=Xmax; dx)
    {
 
        if (x < 0 && b != 0)
    {
            d = x*x*x;
            e = x*x;
            f = a*d+b*e;
            printf("znachenie ravno%f\n", f);
    }
            else
                if (x > 0 && b == 0)
                {
                    if ((x-c)==0)
                    {
                    printf("Nelzya tak pisat a to rabotat ne budet");
                    }
                f= (x-a)/(x-c);
                printf("znachenie ravno%f\n", f);
                }
                else
                {
                    if ( c == 0 )
                    {
                    printf("Nelzya c=0");
                    }
                        if (x==10)
                        {
                        printf("Nelzya x=10");
                        }
                f=(x+5)/(c*(x-10));
                printf ("znachenie ravno%f\n", f);
                }
 
    }
}
не знаю как редактировать тему, но частично изменил код, т.к. понял что чать неправильна. Но всё ранво та же проблема:
#include <stdio.h>
 
int main()
{
    float a, b, c, x, d, e, f, Xmin, Xmax, dx;
    printf("vvedite shag dx");
    scanf("%f", &dx);
    printf("Vvedite Xmin");
    scanf("%f", &Xmin);
    printf("Vvedite Xmax");
    scanf("%f", &Xmax);
    printf("vvedite a");
    scanf("%f", &a);
    printf("vvedite b");
    scanf("%f", &b);
    printf("vvedite c");
    scanf("%f", &c);
    for (x=Xmin; x<=Xmax; dx)
    {
 
        if (x < 0 && b != 0)
    {
            d = x*x*x;
            e = x*x;
            f = a*d+b*e;
    }
            else
                if (x > 0 && b == 0)
                {
                    if ((x-c)==0)
                    {
                    continue;
                    }
                f= (x-a)/(x-c);
                }
                else
                {
                    if ( c == 0 )
                    {
continue;
                    }
                        if (x==10)
                        {
                        continue;
                        }
                f=(x+5)/(c*(x-10));
                }
                printf ("znachenie ravno%f\n", f);
    }
}

Решение задачи: «Пожалуйста, подскажите где ошибка!»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
    float a, b, c, x, d, e, f, Xmin, Xmax, dx;
    printf("vvedite shag dx");
    scanf("%f", &dx);
    printf("Vvedite Xmin");
    scanf("%f", &Xmin);
    printf("Vvedite Xmax");
    scanf("%f", &Xmax);
    printf("vvedite a");
    scanf("%f", &a);
    printf("vvedite b");
    scanf("%f", &b);
    printf("vvedite c");
    scanf("%f", &c);
    for (x=Xmin; x<=Xmax; x=x+dx)
        {
        if (x < 0 && b)
            { d = x*x*x; e = x*x;f = a*d+b*e; }
        else
            if (x > 0 && b == 0)
        {
        if ((x-c)==0) continue;
        f= (x-a)/(x-c);
        }
        else
        {
        if ( c == 0 ) continue;
        if (x==10) continue;
    f=(x+5)/(c*(x-10));
    }
printf ("[x]=%f ,znachenie ravno%f\n", x, f);
}
}

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

  1. В программе объявлены следующие переменные: float a, b, c, x, d, e, f, Xmin, Xmax, dx;
  2. Пользователю предлагается ввести значение dx с помощью функции scanf.
  3. Затем пользователю предлагается ввести значения Xmin, Xmax и a с помощью функции scanf.
  4. Значение b вводится пользователем с помощью функции scanf.
  5. Значение c вводится пользователем с помощью функции scanf.
  6. Запускается цикл for, который выполняет вычисления для каждого значения x от Xmin до Xmax с шагом dx.
  7. Внутри цикла проверяется, является ли x отрицательным и равно ли b единице. Если это так, то выполняется блок кода, который вычисляет значения d и e, используя формулы xxx и xx соответственно, и присваивает f значение ad+b*e.
  8. Если x больше нуля и b равно нулю, то выполняется блок кода, который проверяет, равно ли (x-c) нулю. Если это так, то цикл продолжает работу со следующего шага, иначе вычисляется значение f как (x+5)/(c*(x-10)).
  9. Если x меньше или равно нулю и b не равно единице, то выполняется блок кода, который вычисляет значение f как (x+5)/(c*(x-10)).
  10. В конце цикла выводится значение x и f.
  11. Программа завершается.

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


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

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

9   голосов , оценка 4.222 из 5