用C求解一元二次方程的解,遇到的问题及解决办法 分类: C语言 2012-03-13 00:26 3094人阅读 评论(0) 收藏
编写的一个C语言程序,求解一元二次方程,遇到了很多问题
#include <stdio.h> #include <math.h> int main () { int a=3; int b=4; int c=5; printf("请输入二次方系数"); scanf("%d",&a); printf("请输入一次方系数"); scanf("%d",&b); printf("请输入常数项系数"); scanf("%d",&c); double delt; double X1; double X2; delt=b*b-4*a*c; if(delt>0) { X1=((-b)+sqrt(delt))/2a; X2=((-b)-sqrt(delt))/2a; printf("一元二次方程的根是X1=%f,X2=%f\n",X1,X2); } if(delt=0) { X1=(-b)/2a; X2=X1; printf("一元二次方程有两个相等的根X1=X2=%f\n",X1); } if(delt<0) { printf("一元二次方程无解\n"); } return 0; }
编译的时候DEV C++报错的的情况如下:
修改过以后的代码,运行正常
#include <stdio.h> #include <math.h> int main () { float a; float b; float c; printf("请输入一元二次方程的系数"); scanf("a=%f,b=%f,c=%f",&a,&b,&c); double delt; double X1; double X2; delt=b*b-4*a*c; if(delt>0) { X1=((-b)+sqrt(delt))/(2*a); X2=((-b)-sqrt(delt))/(2*a); printf("一元二次方程的根是X1=%f,X2=%f\n",X1,X2); } if(delt=0) { X1=(-b)/(2*a); X2=X1; printf("一元二次方程有两个相等的根X1=X2=%f\n",X1); } if(delt<0) { printf("一元二次方程无解\n"); } system("pause"); return 0; }
总结:
1)在最后的returne 0; 和主程序之间加一个system("pause");或者getchar();可以看到程序的运行结果,知道,在键盘上任意输入一个字符;
2)在C语言程序设计中如果是乘法不应该省略“*”,在任何情况下都应该使用“*”来表示乘法;
3)scanf("a=%f,b=%f,c=%f",&a,&b,&c);中&a指a在内存中的地址;按照a,b,c在内存中的地址将a,b,c的值存进去,变量a,b,c的地址是在编译连接阶段分配的;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
版权声明:本文为博主原创文章,未经博主允许不得转载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步