自由尋覓快樂別人從沒法感受

0%

C语言学习第六章T1

题目:编写程序求取一元二次方程的根。

主要代码:

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# include <stdio.h>
# include <math.h>

double function1(double a,double b,double c);
double function2(double a,double b,double c);
int judge(double a);
double jdelta(double a,double b,double c);

int main (void)
{
double a,b,c,delta;
printf("一元二次方程计算器:\n");
printf("input a:");
scanf("%lf",&a);
printf("input b:");
scanf("%lf",&b);
printf("input c:");
scanf("%lf",&c);
if ( judge(a) )
{
printf("error!");
}
else
{
delta = jdelta(a,b,c);
printf("dleta=%f\n",delta);
if (delta>0)
{
printf("方程有两个不等实根:");
function1(a,b,c);
}
else if (delta==0)
{
printf("方程有两个相等实根:");
function1(a,b,c);
}
else
{
printf("方程有两个复数根:");
function2(a,b,c);
}
}
return 0;
}

double function1(double a,double b,double c)
{
double x1,x2,delta;
delta = b*b - 4*a*c;
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
printf("x1=%.2lf,",x1);
printf("x2=%.2lf\n",x2);
return 0;
}

double function2(double a,double b,double c)
{
double x1,x2,delta;
delta = -(b*b - 4*a*c);
x1 = -(b/(2*a))+sqrt(delta)/(2*a);
x2 = -(b/(2*a))-sqrt(delta)/(2*a);
printf("x1=%.2lfi,",x1);
printf("x2=%.2lfi\n",x2);
return 0;
}

int judge (double a)
{
if (a==0)
return 1;
else
return 0;
}

double jdelta (double a,double b,double c)
{
double delta;
delta = b*b - 4*a*c;
return delta;
}

运行结果: