Пожалуйста, подскажите где ошибка! - 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); } }
Объяснение кода листинга программы
- В программе объявлены следующие переменные: float a, b, c, x, d, e, f, Xmin, Xmax, dx;
- Пользователю предлагается ввести значение dx с помощью функции scanf.
- Затем пользователю предлагается ввести значения Xmin, Xmax и a с помощью функции scanf.
- Значение b вводится пользователем с помощью функции scanf.
- Значение c вводится пользователем с помощью функции scanf.
- Запускается цикл for, который выполняет вычисления для каждого значения x от Xmin до Xmax с шагом dx.
- Внутри цикла проверяется, является ли x отрицательным и равно ли b единице. Если это так, то выполняется блок кода, который вычисляет значения d и e, используя формулы xxx и xx соответственно, и присваивает f значение ad+b*e.
- Если x больше нуля и b равно нулю, то выполняется блок кода, который проверяет, равно ли (x-c) нулю. Если это так, то цикл продолжает работу со следующего шага, иначе вычисляется значение f как (x+5)/(c*(x-10)).
- Если x меньше или равно нулю и b не равно единице, то выполняется блок кода, который вычисляет значение f как (x+5)/(c*(x-10)).
- В конце цикла выводится значение x и f.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д