发布网友 发布时间:2024-10-24 03:28
共3个回答
热心网友 时间:2024-11-06 19:36
我没仔细看你代码,因为实在是看不下去了。
你的代码规范做的太差了,乱七八糟,这个比你不会一个算法严重的多。
你把函数中的那两行代码给注释了,当然算不出结果,x2返回的是一个随机数。结果肯定有问题。
楼上讲的那个问题也对的,scanf()这个函数中你双引号中的格式是什么,那你手动输入的格式必须一样,否则从文件流中获取数据时就有问题。
建议你在使用scanf()时候不要图省事,输入一个参数就调用一次函数。
热心网友 时间:2024-11-06 19:29
我想应该是scanf("%f,%f%,%f",&p,&q,&r);这句话的问题
你输入的时候肯定没有输入“,”就直接输入了3个数,所以不对,
要么改为scanf("%f%f%%f",&p,&q,&r);
要么输入“1,-4,4”试试
热心网友 时间:2024-11-06 19:33
/*if(m>=1e-6) */x=(-b+sqrt(m))/(2*a);x2=(-b-sqrt(m))/(2*a);
/*else{x=(float)(-b/(2*a));x2=x;}*/
你用/* */注释了判断和小于零的情况,所以只能在大于零是正常
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是就出错了