bearangel 发布留言 2008-7-28 15:42 求二元一次方程程序问题#include #include main () { double a,b,c,disc,x1,x2,p,q; scanf ("%f,%f,%f",&a,&b,&c); disc=b*b-4*a*c; if (disc<0) printf ("方程无解%d"); else p=-b/(2*a); q=sqrt((disc)/(2*a)); x1=p+q; x2=p-q; printf ("x1=%.3f,x2=%.3f",x1,x2); } 我是个新手 这个程序能通过编译 但是不能求出结果,谁能帮我看看那里出错了sxn0508 发布留言 2008-7-28 15:57 编译能通过??!! 你的编译器还支持中文标点?! x2=p-q; 这后面是个中文的分号bearangel 发布留言 2008-7-28 16:01 这个是我在论坛发帖时输入的 在我的程序中是没有的himpo 发布留言 2008-7-28 16:05 你那个是一元二次方程吧。。。
#include #include int main () { double a,b,c,disc,x1,x2,p,q; scanf ("%lf,%lf,%lf",&a,&b,&c); disc=b*b-4*a*c; if (disc<0) printf ("方程无解%d"); else { //后面都属于else p=-b/(2*a); q=sqrt(disc)/(2*a); //这里有问题 x1=p+q; x2=p-q; printf ("x1=%.3f,x2=%.3f",x1,x2); } return 0; }
别的没细看。。
[ 本帖最后由 himpo 于 2008-7-28 16:09 编辑 [/it]]sxn0508 发布留言 2008-7-28 16:06 scanf的时候double型要用%lfxiaomengxia2008 发布留言 2008-7-28 16:09 #include #include main () { double a,b,c,disc,x1,x2,p,q; scanf ("%lf,%lf,%lf",&a,&b,&c); disc=b*b-4*a*c; if (disc<0) printf ("方程无实数解%d"); else p=-b/(2*a); q=(sqrt(disc))/(2*a);/*这里你的公式弄错了吧!*/ /* printf("%f",q);*/ x1=p+q; x2=p-q; printf ("x1=%.3f,x2=%.3f",x1,x2); }深深 发布留言 2008-7-28 17:16 回复 4# himpo 的帖子貌似还是有错.依然出不来啊[tk13]学不懂也要学C 发布留言 2008-7-28 17:23 double a,b,c,disc,x1,x2,p,q; scanf ("%lf,%lf,%lf",&a,&b,&c); 此处类型要匹配,只要改过来就可以运行得到正确答案了。crabeam 发布留言 2008-7-28 20:09 #include "stdio.h" #include"math.h" void main()
{ double a,b,c,disc,x1,x2,p,q; scanf("%lf %lf %lf",&a,&b,&c); disc=b*b-4*a*c; if(disc<0) printf("方程无解:\n"); else { p=-b/(2*a); q=sqrt(disc/(2*a)); x1=p+q; x2=p-q; printf("x1=%lf\nx2=%f\n",x1,x2); }
} float 6~7 有效数字 double 15~16 有效数字 long double 18~19 有效数字
双精度用格式:%lf
长双精度(long double)的 格式 可以用以下方式 %lf %le %lg
页: [1] 特别说明:如网页特效代码中有引用图片文件等,请自己下载到本地调试! |