Написать программу, которая принимает целочисленные коэффициенты квадратного уравнения, показывает количество решений(0, 1 или 2), а потом решает его(выводит корни).
Комментарии по коду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include "stdafx.h" #include <stdio.h> #include <locale.h> #include <math.h>//для корня int getNumberOfSquare(int a,int b,int c);//получение количества корней void getSquares(int a,int b,int c);//вывод корней на экран int main() { setlocale(LC_ALL,"russian"); int a,b,c; printf("Введите коэфициенты a,b,c:\n"); scanf("%d %d %d",&a,&b,&c); printf("Количество корней = %d\n",getNumberOfSquare(a,b,c)); printf("\n"); getSquares(a,b,c); } int getNumberOfSquare(int a,int b,int c) { if (b*b-4*a*c<0)//если дискриминант <0,то корней 0 { return 0; } else if(b*b-4*a*c>0)//если больше 0,то корней 2 { return 2; } else//иначе 1 { return 1; } } void getSquares(int a,int b,int c) { float sqrt1=(-b+sqrt((double)(b*b-4*a*c)))/2/a;//(double)-приведение типов,чтобы sqrt не была перегруженной float sqrt2=(-b-sqrt((double)(b*b-4*a*c)))/2/a; if (b*b-4*a*c<0)//если дискриминант отрицательный,то корней нет { printf("Корней нет"); } else if(b*b-4*a*c>0)//если положительный,то выводим оба корня { printf("x1=%.2f x2=%.2f",sqrt1,sqrt2); } else//если =0,то выводим любой корень { printf("x1=x2=%.2f",sqrt1); } } |