Решение квадратного уравнения - C (СИ) (77109)

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

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

Корни X1 и X2 - передаются по ссылке и "возвращаются" в main() сама функция QuadEqu() возвращает 0, если решения нет и 1 - если решение есть помогите доделать вот эту програмулечку
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
/*здесь должна быть функция функция QuadEqu() возвращает 0, если решения нет и 1 - если решение есть и  чтобы корни х1 и х2 - передавались по ссылке например *х1 */
int main()
{  double a, b, c, d;
   
   a=b=c=d=0.0;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    printf("Введите коэффициент А: ");
    scanf("%lf", &a);
    
    printf("Введите коэффициент В: ");
    scanf("%lf", &b);
    
    printf("Введите коэффициент C: ");
    scanf("%lf", &c);
    
    if(a==0.0)
    {printf("Решений нет - А=0\n"); system("pause"); return 1;}
    
    d = b*b - 4.0 * a *c;
    
    if(d<0.0)
    {printf("Решений нет - D<0\n"); system("pause"); return 2;}
    
    if(d==0.0)
     printf("Один корень - %.2lf\n", -b/2.0/a);
    else
     printf("Два корня: X1= %.2lf X2= %.2lf \n",
         (-b-sqrt(d))/2.0/a, (-b+sqrt(d))/2.0/a );

 system("pause");
 return 0;   
}

Решение задачи: «Решение квадратного уравнения»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define CP SetConsoleCP(1251); SetConsoleOutputCP(1251);
#define NEWLINE putchar('\n');
#define konec  system("pause"); return 0;
 
double QuadEqu(double a, double b, double c, double d, double *X1, double *X2);
 
int main()
{
double a, b, c, d, result, X1, X2;
a=b=c=d=X1=X2=result=0.0;
 
CP
 
printf("Введите число a: ");
scanf("%lf", &a);
printf("Введите число b: ");
scanf("%lf", &b);
printf("Введите число c: ");
scanf("%lf", &c);
printf("Вы ввели: a= %.2lf b= %.2lf c= %.2lf \n", a, b, c);
result = QuadEqu(a, b, c, d, &X1, &X2);
 
printf("X1 = %.2lf, X2 = %.2lf\n", X1, X2);
printf("Функция вернула значение: %.2lf\n", result);
 
NEWLINE
    
konec   
}
 
double QuadEqu(double a, double b, double c, double d, double *X1, double *X2)
{
    if(a == 0.0)
    {printf("Решения нет! a = 0 \n"); return 0.0;}
    d = b*b - 4 * a * c;
    if(d < 0.0)
    {printf("Решения нет! d < 0 \n"); return 0.0;}
    if(d == 0.0)
    {printf("Один корень! \n"); *X1=*X2=(-b+sqrt(d))/2.0*a; return 1.0;}
    else
    *X1 = (-b+sqrt(d))/2.0*a;
    *X2 = (-b-sqrt(d))/2.0*a;
    return 1.0;
}

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

  1. Подключение необходимых библиотек для работы с консолью и вводом-выводом данных
  2. Определение функции QuadEqu, которая принимает значения a, b, c, d и возвращает корни квадратного уравнения
  3. Ввод значений a, b, c, d с помощью функции scanf
  4. Вывод введенных значений на экран
  5. Вызов функции QuadEqu с передачей ей введенных значений и сохранением результатов в переменных X1, X2 и result
  6. Вывод значений X1, X2 на экран
  7. Вывод значения result на экран
  8. Возврат из функции main с помощью konec
  9. Если a равно нулю, выводится сообщение Решения нет! a = 0 и функция возвращает 0
  10. Вычисление значения d как bb - 4a*c
  11. Если d меньше нуля, выводится сообщение Решения нет! d < 0 и функция возвращает 0
  12. Если d равно нулю, выводится сообщение Один корень! и значения X1 и X2 вычисляются как (-b+sqrt(d))/2.0*a и сохраняются в переменных X1 и X2, после чего функция возвращает 1
  13. В противном случае, значения X1 и X2 вычисляются как (-b+sqrt(d))/2.0a и (-b-sqrt(d))/2.0a соответственно
  14. Функция возвращает 1

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


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

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

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