解题思路:
求根公式的使用
注意事项:
1).考虑到要写四个函数,且每个函数都有近乎相同的变量值,所以不妨在设一组double型的全局变量—double a,b,c,p,q;;既然是double数据类型,则输入输出格式都要是"%lf",同时也要指定题目输出时小数点的保留位数!
2).题目要求是在主函数输入三个数值,且要考虑这三个数据作为实参传递给被调用函数的形参的数据类型要一致;
3).解题需要用到开方,则需调用#include<math.h>包
4).对于求解一元二次方程,由△=b^2-4ac就有三种不同取值情况,则被调用函数的也就有三种,不要将△=b^2-4ac和△>b^2-4ac合并。
5).注意当△=b^2-4ac<0时,sqrt(△)=sqrt(4ac-b^2)
参考代码:
#include<stdio.h>
#include<math.h>
double a,b,c,p,q;
int shiroot(double a,double b,double c)
{
p=-b/(2*a);
q=(sqrt(b*b-4*a*c))/(2*a);
printf("x1=%.3lf x2=%.3lf\n",p+q,p-q);
return 0;
}
int equal(double a,double b,double c)
{
p=-b/(2*a);
printf("x1=%.3lf x2=%.3lf\n",p,p);
return 0;
}
int xuroot(double a,double b,double c)
{
p=-b/(2*a);
q=(sqrt(4*a*c-b*b))/(2*a);
printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi\n",p,q,p,q);
return 0;
}
int main()
{
scanf("%lf%lf%lf",&a,&b,&c);
if((b*b-4*a*c)>0)
{
shiroot(a,b,c);
}
else if((b*b-4*a*c)==0)
{
equal(a,b,c);
}
else
xuroot(a,b,c);
return 0;
}
0.0分
12 人评分
#include<stdio.h> #include<math.h> double a,b,c,p,q; int solve(double a,double b,double c) { if((b*b-4*a*c)>0) { p=-b/(2*a); q=(sqrt(b*b-4*a*c))/(2*a); printf("x1=%.3lf x2=%.3lf\n",p+q,p-q); } else if((b*b-4*a*c)==0) { p=-b/(2*a); printf("x1=%.3lf x2=%.3lf\n",p,p); } else if((b*b-4*a*c)<0) { p=-b/(2*a); q=(sqrt(4*a*c-b*b))/(2*a); printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",p,q,p,q); } } int main() { scanf("%ld %lf %lf",&a,&b,&c); solve(a,b,c); }
能否一看我那块不对 ; 测试没问题 提交就。。。 #include <stdio.h> #include <math.h> int main(void) { int flag = 0; double x1, x2, a, b, c, d;; scanf("%lf%lf%lf", &a, &b, &c); d = b*b - 4*a*c; if(d > 0) { x1 = (-b + sqrt(d)) / (2*a); x2 = (-b - sqrt(d)) / (2*a); } else if(fabs(d) < 10e-6) { x1 = x2 = -b / 2.0/a; } else { flag = 1; } if(!flag) { printf("x1=%.3lf x2=%.3lf\n", x1, x2); } else { printf("x1=-%.3lf+%.3lfi", b/(2*a), sqrt(-d)/(2*a)); printf(" x1=-%.3lf-%.3lfi\n", b/(2*a), sqrt(-d)/(2*a)); } return 0; }
函数返回可以是0吗?不应该是返回x1和x2吗?
C语言训练-求素数问题 (C语言代码)浏览:767 |
Pascal三角 (C语言代码)浏览:1245 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:504 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:626 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:679 |
printf基础练习2 (C语言代码)浏览:789 |
1157题解浏览:760 |
1025题解浏览:785 |
局部变量作函数返回值的问题浏览:1015 |
Quadratic Equation (C语言代码)浏览:1027 |
Cccc 2019-12-03 20:18:10 |
这个哪里错了呢