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

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

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

Корни X1 и X2 - передаются по ссылке и "возвращаются" в main() сама функция QuadEqu() возвращает 0, если решения нет и 1 - если решение есть помогите доделать вот эту програмулечку
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. /*здесь должна быть функция функция QuadEqu() возвращает 0, если решения нет и 1 - если решение есть и чтобы корни х1 и х2 - передавались по ссылке например *х1 */
  5. int main()
  6. { double a, b, c, d;
  7. a=b=c=d=0.0;
  8. SetConsoleCP(1251);
  9. SetConsoleOutputCP(1251);
  10. printf("Введите коэффициент А: ");
  11. scanf("%lf", &a);
  12. printf("Введите коэффициент В: ");
  13. scanf("%lf", &b);
  14. printf("Введите коэффициент C: ");
  15. scanf("%lf", &c);
  16. if(a==0.0)
  17. {printf("Решений нет - А=0\n"); system("pause"); return 1;}
  18. d = b*b - 4.0 * a *c;
  19. if(d<0.0)
  20. {printf("Решений нет - D<0\n"); system("pause"); return 2;}
  21. if(d==0.0)
  22. printf("Один корень - %.2lf\n", -b/2.0/a);
  23. else
  24. printf("Два корня: X1= %.2lf X2= %.2lf \n",
  25. (-b-sqrt(d))/2.0/a, (-b+sqrt(d))/2.0/a );
  26.  
  27. system("pause");
  28. return 0;
  29. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #define CP SetConsoleCP(1251); SetConsoleOutputCP(1251);
  5. #define NEWLINE putchar('\n');
  6. #define konec  system("pause"); return 0;
  7.  
  8. double QuadEqu(double a, double b, double c, double d, double *X1, double *X2);
  9.  
  10. int main()
  11. {
  12. double a, b, c, d, result, X1, X2;
  13. a=b=c=d=X1=X2=result=0.0;
  14.  
  15. CP
  16.  
  17. printf("Введите число a: ");
  18. scanf("%lf", &a);
  19. printf("Введите число b: ");
  20. scanf("%lf", &b);
  21. printf("Введите число c: ");
  22. scanf("%lf", &c);
  23. printf("Вы ввели: a= %.2lf b= %.2lf c= %.2lf \n", a, b, c);
  24. result = QuadEqu(a, b, c, d, &X1, &X2);
  25.  
  26. printf("X1 = %.2lf, X2 = %.2lf\n", X1, X2);
  27. printf("Функция вернула значение: %.2lf\n", result);
  28.  
  29. NEWLINE
  30.    
  31. konec  
  32. }
  33.  
  34. double QuadEqu(double a, double b, double c, double d, double *X1, double *X2)
  35. {
  36.     if(a == 0.0)
  37.     {printf("Решения нет! a = 0 \n"); return 0.0;}
  38.     d = b*b - 4 * a * c;
  39.     if(d < 0.0)
  40.     {printf("Решения нет! d < 0 \n"); return 0.0;}
  41.     if(d == 0.0)
  42.     {printf("Один корень! \n"); *X1=*X2=(-b+sqrt(d))/2.0*a; return 1.0;}
  43.     else
  44.     *X1 = (-b+sqrt(d))/2.0*a;
  45.     *X2 = (-b-sqrt(d))/2.0*a;
  46.     return 1.0;
  47. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы