前言:
此刻兄弟们对“c语言输入一个式子输出结果”大致比较注重,朋友们都需要学习一些“c语言输入一个式子输出结果”的相关知识。那么小编在网络上网罗了一些对于“c语言输入一个式子输出结果””的相关文章,希望兄弟们能喜欢,大家快快来了解一下吧!前面已经看到了利用printf函数进行数据输出的程序,现在再介绍一个包含输入和输出的程序。
例:求方程ax^2+bx+c=0的根。a、b、c由键盘输入,设b^2-4ac>0
解题思路:首先要知道求方程式的根的方法。有数学知识已知:如果b^2-4ac≥0,则一元二次方程有两个实根:
可以将上面的分式分为两项:
则
有了这些式子,只要知道a、b、c的值,就能顺利地求出方程的两个根。
剩下的问题就是输入a、b、c的值和输出根的值了。需要用scanf函数输入a、b、c的值,用printf函数输出两个实根的值。
编写程序:
#include<stdio.h>#include<math.h>int main(){ double a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q;x2=p-q; printf("x1=%7.2f\nx2=%7.2f\n",x1,x2); return 0;}
运行结果:
1 3 2
x1= -1.00
x2= -2.00
注意在输入数据时,1,3,2这3个数之间用空格分隔,最后按“回车”键。
程序分析:
(1)用scanf函数输入a、b、c的值,请注意在scanf函数中括号内变量a,b,c的前面要用地址符&,即&a,&b,&c。&a表示变量a在内存中的地址。该scanf函数表示从终端输入的3个数据分别送到地址为&a,&b,&c的存储单元,也就是赋值给变量a,b,c。双撇号内用%lf格式声明,表示输入的是双精度型实数。
(2)在scanf函数中,格式声明为“%lf%lf%lf”,连续3个“%lf”,要求输入3个实数。注意在程序运行时应怎样输入数据。从上面运行情况中可以看到输入“1 3 2”,两个数之间用空格分开,这是正确的,如果用其他符号会出错。输入的是整数,但由于指定用%lf格式输入,因此系统会先把这3个整数转换成实数1.0,3.0,2.0,然后赋值给变量a,b,c.
(3)在printf函数中,不是简单地用%lf格式声明,而是在格式符f的前面加了“7.2”,表示在输出x1和x2时,指定数据占7列,其中小数占2列。这样做的好处是:1.可以根据实际需要Laura输出小数的位数,因为并不是任何时候都需要6位小数的,例如价格只须2位小数即可,2.如果输出多个数据,各占一行,而用同一个格式声明,即使输出的数据整数部分值不同,但输出时上下行必然按小数点对齐,使输出数据整齐美观。
(4)在本例中假设给定的a,b,c的值满足b^2-4ac>0,所以程序不对此进行判断。在实际中,用所输入的a,b,c并不一定能求出两个实根。因此为稳妥起见,应在程序的开头检查b^2-4ac是否大于等于0.只有确认它大于等于0,才能用上述方法求方程的根。
搜索微信公众号【balayihuier】或扫描下方二维码关注微信公众号,资深软件工程师带你手把手撸代码,从此走上人生巅峰,迎娶白富美!
标签: #c语言输入一个式子输出结果