C语言程序求方程ax^2+bx+c=0的根,用3个函数分别求当b^2-4ac大于0,等于0和小于0时的根主程序中输入a、b、c
C语言程序求方程ax^2+bx+c=0的根,用3个函数分别求当b^2-4ac大于0,等于0和小于0时的根主程序中输入a、b、c的值...
C语言程序求方程ax^2+bx+c=0的根,用3个函数分别求当b^2-4ac大于0,等于0和小于0时的根主程序中输入a、b、c的值
展开
6个回答
展开全部
#include "stdio.h"
#include "math.h"
void f1(double a,double b,double d){
d=sqrt(d),a+=a,b=-b;
printf("x1 = %f\nx2 = %f\n",(b+d)/a,(b-d)/a);
}
void _f(double a,double b,double d){
d=sqrt(-d),a=-b/a/2,b=d/a/2;
printf("x1 = %f%+fi\nx2 = %f%+fi\n",a,b,a,-b);
}
void f0(double a,double b){
printf("x1=x2 = %f\n",-b/a/2);
}
int main(int argv,char *argc[]){
double a,b,c,d;
printf("Input a, b, c(R:)...\n");
scanf("%lf%lf%lf",&a,&b,&c);
if((d=b*b-4*a*c)>0)
f1(a,b,d);
else if(d<0)
_f(a,b,d);
else
f0(a,b);
return 0;
}
运行样例:
展开全部
#include <iostream>
#include <math.h>
using namespace std;
float x1,x2,disc,p,q;
int main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
disc=b*b-4*a*c;
cout<<"root:"<<endl;
if (disc>0)
{
greater_than_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else if (disc==0)
{equal_to_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else
{smaller_than_zero(a,b);
cout<<"x1="<<p<<"+"<<q<<"i"<<endl;
cout<<"x2="<<p<<"-"<<q<<"i"<<endl;
}
return 0;
}
void greater_than_zero(float a,float b) /* 定义一个函数,用来求disc>0时方程的根 */
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b) /* 定义一个函数,用来求disc=0时方程的根 */
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b) /* 定义一个函数,用来求disc<0时方程的根 */
{
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
#include <math.h>
using namespace std;
float x1,x2,disc,p,q;
int main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
disc=b*b-4*a*c;
cout<<"root:"<<endl;
if (disc>0)
{
greater_than_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else if (disc==0)
{equal_to_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else
{smaller_than_zero(a,b);
cout<<"x1="<<p<<"+"<<q<<"i"<<endl;
cout<<"x2="<<p<<"-"<<q<<"i"<<endl;
}
return 0;
}
void greater_than_zero(float a,float b) /* 定义一个函数,用来求disc>0时方程的根 */
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b) /* 定义一个函数,用来求disc=0时方程的根 */
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b) /* 定义一个函数,用来求disc<0时方程的根 */
{
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<bits/stdc++.h>
using namespace std;
double dieta,a,b,c;
void solve_0()
{
dieta=sqrt(-dieta)/2/a;
double d=-b/2/a;
printf("&.6lf+&.6lf i/n&.6lf-&.6lf i",d,dieta,d,dieta);
}
void solve_1()
{
double d=-b/2/a;
printf("&.6lf",d);
}
void solve_2()
{
dieta=sqrt(dieta)/2/a;
double d=-b/2/a;
printf("&.6lf/n&.6lf",d+dieta,d-dieta);
}
void solve_9()
{
double d=-c/b;
printf("&.6lf",d);
}
int main()
{
cin >> a >> b >> c;
dieta=b*b-4*a*c;
if(a == 0)
solve_9();
else if(dieta>0)
solve_2();
else if(dieta==0)
solve_1();
else
solve_0();
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
求写大一的C语言程序:求方程ax^2+bx+c=0的根,用3个函数分别求当b^2-4ac大于0,等于0和小于0时的根,在主程序中输入a、b、c的值。请写大一的水平,自己先试试输出结果是否正确,非常紧急!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
#include <math.h>
using namespace std;
float x1,x2,disc,p,q;
int main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
disc=b*b-4*a*c;
cout<<"root:"<<endl;
if(disc>0)
{greater_than_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else if(disc==0)
{equal_to_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else
{small_than_zero(a,b);
cout<<"x1="<<p<<"+"<<q<<"i"<<endl;
cout<<"x2="<<p<<"-"<<q<<"i"<<endl;
}
return 0;
}
void greater_than_zero(float a,float b)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(floata,float b)
{x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
#include <math.h>
using namespace std;
float x1,x2,disc,p,q;
int main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
disc=b*b-4*a*c;
cout<<"root:"<<endl;
if(disc>0)
{greater_than_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else if(disc==0)
{equal_to_zero(a,b);
cout<<"x1="<<x1<<",x2="<<x2<<endl;
}
else
{small_than_zero(a,b);
cout<<"x1="<<p<<"+"<<q<<"i"<<endl;
cout<<"x2="<<p<<"-"<<q<<"i"<<endl;
}
return 0;
}
void greater_than_zero(float a,float b)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(floata,float b)
{x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询