C语言编写一个求一元二次方程的实根的程序。

 我来答
棉花表表
2018-04-09 · TA获得超过7564个赞
知道小有建树答主
回答量:81
采纳率:96%
帮助的人:2.4万
展开全部

步骤:

  1. 打开visual C++ 6.0-文件-新建-文件-C++ Source File

2.

定义变量:

#include <stdio.h>

#include <math.h>

void main()

{

double a,b,c;                                /*定义系数变量*/

double x1,x2,p;                              /*定义根变量和表达式的变量值*/

3.输入系数:

printf("请输入a,b,c:");                      /*提示用户输入三个系数*/

scanf("%lf%lf%lf",&a,&b,&c);                 /*接收用户输入的系数*/

4.输出回车:

printf("\n");                               /*输出回行*/

5.

计算根:

p=b*b-4*a*c;                            /*给表达式赋值*/

x1=(-b+sqrt(p))/(2*a);                           /*根1的值*/

x2=(-b-sqrt(p))/(2*a);                           /*跟2的值*/

6.

输出结果:

printf("x1=%f,x2=%f\n",x1,x2);                   /*输出两个根的值*/

完整的源代码:

#include <stdio.h>

#include <math.h>

void main()

{

double a,b,c;                                /*定义系数变量*/

double x1,x2,p;                              /*定义根变量和表达式的变量值*/

printf("请输入a,b,c:");                      /*提示用户输入三个系数*/

scanf("%lf%lf%lf",&a,&b,&c);                 /*接收用户输入的系数*/

printf("\n");                               /*输出回行*/

p=b*b-4*a*c;                            /*给表达式赋值*/

x1=(-b+sqrt(p))/(2*a);                           /*根1的值*/

x2=(-b-sqrt(p))/(2*a);                           /*跟2的值*/

printf("x1=%f,x2=%f\n",x1,x2);                   /*输出两个根的值*/

}

匿名用户
2017-12-15
展开全部
#include<stdio.h>
#include<math.h>

int main()
{
    int a, b, c;
    int x1, x2;
    int d;
    
    printf("请输入方程的三个系数:");
    scanf("%d, %d, %d", &a, &b, &c);
    
    d = b*b - 4*a*c;
    if(d > 0)
    {
        x1 = (-b + sqrt(d))/(2*a);
        x2 = (-b - sqrt(d))/(2*a);
        
        printf("方程有两个不相等的根为:%d, %d\n", x1, x2);
    }
    else if(d = 0)
    {
        x1 = x2 = (-b)/(2*a);
        printf("方程有两个相等的根为:%d\n", x1);
    }
    else if(d < 0)
    {
        printf("方程没有实根\n");
    }
    
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逆尘r
2018-01-20 · 超过10用户采纳过TA的回答
知道答主
回答量:43
采纳率:57%
帮助的人:14.5万
展开全部

吐槽:书上已基本给出了思路,就是照着敲的事。

答案:

#include<stdio.h>
#include<math.h>

int main(void)
{
float a,b,c; //对应ax+by+c=0
float d;     //蝶儿塔d
float x1,x2; //根

printf("输入系数\n");
scanf("%f%f%f",&a,&b,&c);

d = b*b-4*a*c;

if(d>0)
{
x1 = (-b+sqrt(d))/(2*a);
x2 = (-b-sqrt(d))/(2*a);
printf("%f   %f\n",x1,x2);
}
else if(!d)
{
x1 = (float)-b/(2*a);
printf("%f\n",x1);
}
else
printf("无根\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陆捷1
推荐于2017-11-18 · TA获得超过718个赞
知道小有建树答主
回答量:690
采纳率:100%
帮助的人:341万
展开全部
#include <stdio.h>
#include <math.h>
int main(void)
{
double a,b,c,x1,x2,d;
scanf("%lf%lf%lf",&a,&b,&c);
d = b * b - 4 * a * c;
if(d > 0)
{
x1 = (-1 * b + sqrt(d)) / (2 * a);
x2 = (-1 * b - sqrt(d)) / (2 * a);
printf("x1 = %g,x2 = %g\n",x1,x2);
}
else if(d = 0)
{
x1 = x2 = (-1 * b) / (2 * a);
printf("x1 = %g,x2 = %g\n",x1,x2);
}
else
{
printf("方程没有实根\n");
}

return 0;
}
望采纳,谢谢~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无影之子
2017-11-18 · TA获得超过168个赞
知道答主
回答量:48
采纳率:83%
帮助的人:15.9万
展开全部
#include"stdio.h"
#include"stdlib.h"
#include"math.h"
int main()
{
double a,b,c,f,x1,x2,x,d;
printf("输入二元一次方程的系数a,b,c\n");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0)
{
x=c/b;
printf("x=%lf\n",x);
exit(0);
}
d=pow(b,2)-4*a*c;
if(d>0)
{
printf("有两个不同的实根");
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else if(d==0)
{
printf("有两个相同的实根");
f=2*a;
x=(-b)/f;
printf("x1=x2=%lf\n",x);
}
else
printf("无解");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式