Написать программу, которая принимает целочисленные коэффициенты квадратного уравнения, показывает количество решений(0, 1 или 2), а потом решает его(выводит корни).
Комментарии по коду:
#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);
}
}