请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数相关的知识,希望对你有一定的参考价值。

代码如下: def f(x): s=(a*x)**3+(b*x)**2+(c*x)+d return s a=int(input("a")) b=int(input("b")) c=int(input("c")) d=int(input("d")) for i in range(-100,100,1): x1=int(i) x2=int(i+1) if f(x1)*f(x2)<0: lo,hi=x1,x2 while hi-lo>0.01: mid=(lo+hi)/2 if f(lo)*f(mid)<0: hi=mid else: lo=mid return mid else: pass print(mid)

代码有两个地方有问题
1:19行的return缩进有问题,19行的return不应该出现在一个非方法的地方
2: 代码有可能出现死循环,在我输入a:10, b:10, c:10, d:10的时候出现死循环,请检查代码逻辑

我已经调整好了

def f(x):
    s=(a*x)**3+(b*x)**2+(c*x)+d
    return s

a=int(input("a"))
b=int(input("b"))
c=int(input("c"))
d=int(input("d"))

mid = 0
for i in range(-100,100,1):
    x1=int(i)
    x2=int(i+1)
    if f(x1)*f(x2)<0:
        lo,hi=x1,x2
        while hi-lo>0.01:
            mid=(lo+hi)/2
            if f(lo)*f(mid)<0:
                hi=mid
            else:
                lo=mid
    else:
        pass

print mid

参考技术A

C语言代码求差错,谢谢大佬!

给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
如:
输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
我的代码如下,请问错在哪里
int removeDuplicates(int* nums, int numsSize)
if(numsSize==NULL)
return;

int i=0,x=0;
for(int j=0;j<numsSize;j++)
if(nums[i]!=nums[j]&&(j-i)==3)
i=j-1;
nums[i]=nums[j];
x++;


return numsSize-x+1;

参考技术A 语法上看没什么问题,
看起来要求输入2个参数,
实际你只输入了一个参数是不是输入少了,导致的!
参考技术B int removeDuplicates(int* nums, int numsSize)
int cnt = 0, value = nums[0], res = 0;
for(int i = 0; i < numsSize; ++i)
if(nums[i] == value) cnt++;
else cnt = 1; value = nums[i];
if(cnt <= 2) nums[res++] = nums[i];

return res;

以上是关于请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数的主要内容,如果未能解决你的问题,请参考以下文章

请问c++这个程序中总显示着else与if不匹配,请问大家错在哪里了?

关于CSS滤镜设置的问题,为啥网页显示不出来效果,变不了灰色,帮忙查看一下代码看看错在哪里,谢谢

帮忙看一下这个C语言程序错在哪里了

易语言7z压缩解压模块使用方法! 不知道错在哪里了!求详细说明!大牛们谢谢了

帮我看看程序错在哪里了!

代码片段 PHP,预期文件结尾,我错在哪里?