请教小问题!!
求方程 a*x*x+b*x+c=0的根,用三个函数分别求当b*b-4*a*c大于0,等于0和小于0的根并输出结果。从主函数中输入a,b,c的值。
这里我用一个函数解决了,但运行时出现问题,请指教!!!
#include<stdio.h>
#include<math.h>
void QG(int ,int ,int);
void main()
{
int a,b,c;
printf("Please input the value of a,b,c :");
scanf("%d,%d,%d",a,b,c);
QG(a,b,c);
}
void QG(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
double n;
n=sqrt(m);
if(m>0)
printf("The value is :%d,%d\n",(-b+n)/(2*a),(-b-n)/(2*a));
else if(m=0)
printf("The value is :%d\n",-b/(2*a));
else
printf("No value!!\n");
}
问题点数:20、回复次数:7Top
1 楼llf_hust()回复于 2006-03-04 20:09:31 得分 2
报的什么错误呀Top
2 楼cunsh(村少)回复于 2006-03-04 20:09:32 得分 5
scanf("%d,%d,%d",a,b,c);
====================
&a,&b,&cTop
3 楼steedhorse(晨星)回复于 2006-03-04 20:11:58 得分 5
你用“%d”打印浮点数,应该这样:
printf("The value is :%d,%d\n", (int)(-b+n)/(2*a), (int)(-b-n)/(2*a));
要么你就使用“%f”。Top
4 楼cunsh(村少)回复于 2006-03-04 20:13:01 得分 3
printf("The value is :%d,%d\n",(-b+n)/(2*a),(-b-n)/(2*a));
========
结果是小数.不能用%d呀.用%lfTop
5 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 20:52:56 得分 3
scanf("%d,%d,%d",&a,&b,&c);Top
6 楼zsh6709(世界上没有后悔药吃的!!!)回复于 2006-03-06 09:33:48 得分 0
真是不好意思哦!
连C语言中最简单的东西都搞忘记了,一看书就知道怎么回事了!
现在帖出正确答案,仅供大家参考?
如果大家有更好的解决方案,请指教,明天结贴!!
#include<stdio.h>
#include<math.h>
void QG(float ,float ,float);
void main()
{
float a,b,c;
printf("Please input the value of a,b,c :");
scanf("%f,%f,%f",&a,&b,&c);
QG(a,b,c);
}
void QG(float a,float b,float c)
{
double m,n;
m=b*b-4*a*c;
if(m>=0)
if(m>0)
{
n=sqrt(m);
printf("The value is :%lf,%lf\n",(-b+n)/(2*a),(-b-n)/(2*a));
}
else
printf("The value is :%lf\n",-b/(2*a));
else
printf("No value!!\n");
}
Top
7 楼bohlee(我心澎湃)回复于 2006-03-06 15:40:57 得分 2
顶Top




