88 lines
2.1 KiB
C
88 lines
2.1 KiB
C
|
#include <stdio.h>
|
|||
|
#include <conio.h>
|
|||
|
#include <locale.h>
|
|||
|
#include <math.h>
|
|||
|
|
|||
|
float InputFloat(char* message)
|
|||
|
{
|
|||
|
float number;
|
|||
|
static int counter = 0;
|
|||
|
counter++;
|
|||
|
printf("%d,%s",counter,message);
|
|||
|
scanf("%f",&number);
|
|||
|
return number;
|
|||
|
}
|
|||
|
|
|||
|
void CalcRealRoots(float sqrD,float B,float a)
|
|||
|
{
|
|||
|
float X1,X2;
|
|||
|
printf("Корни квадратного уравнения \n");
|
|||
|
float d = sqrtf(sqrD);
|
|||
|
X1 = (-B + d)/a; //2
|
|||
|
printf("X1 = %f \n",X1);
|
|||
|
X2 = (-B - d)/a; //16
|
|||
|
printf("X2 = %f \n",X2);
|
|||
|
}
|
|||
|
|
|||
|
//Сделаем вычисление корней квадратного уравнения отдельной функцией.
|
|||
|
void SquareEquation(void)
|
|||
|
{
|
|||
|
printf("Вычисление корней квадратного уравнения \\ \"a*x*x+b*x+с=0\"\n");
|
|||
|
float a = InputFloat("Введите a:\n");//1
|
|||
|
float b = InputFloat("Введите b:\n");//18
|
|||
|
float c = InputFloat("Введите c:\n");//32
|
|||
|
float B = b/2;
|
|||
|
if(a!=0)
|
|||
|
{
|
|||
|
float d = B*B-a*c;
|
|||
|
if(d<0)
|
|||
|
{
|
|||
|
printf("Корни квадратного уравнения комплексные \n");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
CalcRealRoots(d,B,a);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(b!=0)
|
|||
|
{
|
|||
|
float X1 = -c/b;
|
|||
|
printf("Корень линейного уравнения %f\n",X1);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
printf("Корней НЕТ!\n");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int main(int argc, char **argv)
|
|||
|
{
|
|||
|
char Choice;
|
|||
|
setlocale(LC_ALL, ".utf-8");
|
|||
|
while(1)
|
|||
|
{
|
|||
|
printf("1. Вычисление корней квадратного уравнения\n");
|
|||
|
printf("0. Выход\n");
|
|||
|
printf("Для выход нажмите Q\n");
|
|||
|
Choice = _getch();
|
|||
|
switch(Choice)
|
|||
|
{
|
|||
|
case '1':
|
|||
|
SquareEquation();
|
|||
|
break;
|
|||
|
case '0':
|
|||
|
case 'q':
|
|||
|
case 'Q':
|
|||
|
return 0;
|
|||
|
break;
|
|||
|
default:
|
|||
|
printf("Непонятный выбор %x\n",Choice);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|