C语言编写简单数学公式的问题
两个问题.一、设:(b*b-4ac>0) 1,#include "math.h" main() { float a,b,c,x1,x2; scanf("%f,%f,%f",&a,&b,&c); x1=(-b+sqrt(b*b-4*a*c))/(2*a; x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("%f,%f",x1,x2); } 2,#include "math.h" main() { float a,b,c,x1,x2,disc,p,q; scanf("%f,%f,%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("%f,%f",x1,x2); } 为什么第二个对,第一个不对?我看的是C语言的书,里面的一元二次方程是用第二种方式写的。于是就很纳闷为什么不用第一种,套用原始的公式。就试着写出来,发现会出错。麻烦高手帮忙看看,谢谢!二、#include "stdio.h"void main(){ float r,h,l,s,S,v,V; scanf("%f,%f",&r,&h); l=2*3.14*r; s=3.14*r*r; S=4*3.14*r*r; v=4*3.14*r*r*r/3; V=3.14*r*r*h; printf("圆周长=%.2f,圆面积=%.2f,圆球表面积=%.2f,圆球体积=%.2f,圆柱体积=%.2f",l,s,S,v,V); }为什么无论输入何数,算出来的圆柱体积V都是"0.00"?如何改?
更多