c语言高手:下面一段程序只能求出判别式大于零时的根,可问题又出在浮点上,也不知全局变量有无问题
答案:3 悬赏:50 手机版
解决时间 2021-03-23 10:27
- 提问者网友:一抹荒凉废墟
- 2021-03-23 05:11
c语言高手:下面一段程序只能求出判别式大于零时的根,可问题又出在浮点上,也不知全局变量有无问题
最佳答案
- 五星知识达人网友:荒野風
- 2021-03-23 06:12
我没仔细看你代码,因为实在是看不下去了。
你的代码规范做的太差了,乱七八糟,这个比你不会一个算法严重的多。
你把函数中的那两行代码给注释了,当然算不出结果,x2返回的是一个随机数。结果肯定有问题。
楼上讲的那个问题也对的,scanf()这个函数中你双引号中的格式是什么,那你手动输入的格式必须一样,否则从文件流中获取数据时就有问题。
建议你在使用scanf()时候不要图省事,输入一个参数就调用一次函数。
你的代码规范做的太差了,乱七八糟,这个比你不会一个算法严重的多。
你把函数中的那两行代码给注释了,当然算不出结果,x2返回的是一个随机数。结果肯定有问题。
楼上讲的那个问题也对的,scanf()这个函数中你双引号中的格式是什么,那你手动输入的格式必须一样,否则从文件流中获取数据时就有问题。
建议你在使用scanf()时候不要图省事,输入一个参数就调用一次函数。
全部回答
- 1楼网友:纵马山川剑自提
- 2021-03-23 08:58
我想应该是scanf("%f,%f%,%f",&p,&q,&r);这句话的问题
你输入的时候肯定没有输入“,”就直接输入了3个数,所以不对,
要么改为scanf("%f%f%%f",&p,&q,&r);
要么输入“1,-4,4”试试
你输入的时候肯定没有输入“,”就直接输入了3个数,所以不对,
要么改为scanf("%f%f%%f",&p,&q,&r);
要么输入“1,-4,4”试试
- 2楼网友:十年萤火照君眠
- 2021-03-23 07:47
x=(-b+sqrt(m))/(2*a);x2=(-b-sqrt(m))/(2*a);
你用注释了判断和小于零的情况,所以只能在大于零是正常
if(m>=1e-6)
{
x=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
}
else
{
x=(float)(-b/(2*a));
x2=x;
}
小于0是就出错了
你用注释了判断和小于零的情况,所以只能在大于零是正常
if(m>=1e-6)
{
x=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
}
else
{
x=(float)(-b/(2*a));
x2=x;
}
小于0是就出错了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯