房天下 > 房天下问答 > 业主生活 > 其他
  • 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"?如何改?

    提问者:yxh-lcf

    发布于2010-12-07

共1个回答
  • 喜欢夏天的味道 丨Lv 0
    第一个问题:您的第六行在 (2*a 之后应当加右括号第二个问题:您可能是C语言的新手吧,这段代码没问题,是您对其理解有偏差,scanf("%f,%f",&r,&h); 这个语句的意思是输入两个数给浮点型的变量r和h复制,输入时要按照 数字1加上逗号加上数字2的格式(例如: 3.5,9.34),或者数字1加上空格加上数字2(例如: 4 5.6)。您可能只输入了一个数字所以系统会将其值赋给变量r,而变量h则使用了缺省值0.00,这样计算就使得体积为0.00了。回答完毕,祝您好运。
    +1 2010-12-07 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。