C语言 写一个解方程的程序

二次方程我会用公式法,但是我想用下面这种方法应该怎么改,还有,怎么才能输出负数#include<stdio.h>main(){inta,b,c;floatx;printf... 二次方程我会用公式法,但是我想用下面这种方法应该怎么改,还有,怎么才能输出负数#include<stdio.h>main()
{
int a,b,c;
float x;
printf("a= b= c=\n");
scanf("%d%d%d",&a,&b,&c);
if(a*x*x+b*x+c==0)
printf("%f",x);
getch();
}
展开
 我来答
户哲茂5B
2017-07-21 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:132万
展开全部
如果答案是整数,那就扫描法,就是挨个带入x的值计算,当然你也可以根据你带入的x算出y的值然后通过算法很快定位x的大概值,在附近扫描,效率更高。
如果x是任意值可以是小数,那就用扫描十分法,就是你通过跟上面差不多的方法计算出假如x=5和x=6带入后y出现正负变化了或者y本来下降趋势,后来上升趋势。那说明x的值就加在5和6之间,然后缩小精度从5.0->到6.0再最多带入10次,测出在5.6 5.7 之间 在测5.60->5.70逐个带入。思想就是这样,其实就是逐渐逼近。
匿名用户
2014-03-10
展开全部
#include <stdio.h>
#include <math.h>

double x1,x2,p;

float file1(float a,float b)
{
x1=(-b+sqrt(p))/2*a;
x2=(-b-sqrt(p))/2*a;
return 0;
}

float file2(float a,float b)
{
x1=x2=(-b+sqrt(p))/2*a;
return 0;
}

void main()
{
float a,b,c;
printf("请依次输入方程的三个系数:\n");
scanf("%f%f%f",&a,&b,&c);
p=b*b-4*a*c;
printf("方程是:%.1f*x*x + %.1f*x + %.1f = 0\n",a,b,c);
if(p>0)
{
file1(a,b);
printf("X1=%f\tX2=%f\n",x1,x2);
}
else if(p==0)
{
file2(a,b);
printf("X1=%f\tX2=%f\n",x1,x2);
}
else printf("方程无解");
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liouyi250
推荐于2017-08-10 · TA获得超过314个赞
知道小有建树答主
回答量:375
采纳率:60%
帮助的人:63.6万
展开全部
#include<stdio.h>
#include <math.h>
int main()
{
int a,b,c;
float x1,x2;
printf("a= b= c=\n");
scanf("%d%d%d",&a,&b,&c);
if(b*b-4*a*c>=0){
    if(b*b-4*a*c==0){
        x1=x2=-b*1.0/(2*a);
        printf("%f\n",x1);
    }else{
        x1=(-b+sqrt(b*b-4*a*c))/(2.0*a);
        x2=(-b-sqrt(b*b-4*a*c))/(2.0*a);
        printf("%f,%f\n",x1,x2);
    }
}else{
    printf("没有实数解\n");
}

getchar();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-10
展开全部
先判断b*b-4*a*c>0,<0<=0不要用unsigned是负数自然会输出的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式