c语言求c语言编一元二次方程程的解,精度要求1e-6,请问我的代码if条件那步错在哪里了,为什么得不出解呢?

编写一个高效的算法来判断 m x n 矩阵Φ是否存在一个目标值。该矩阵具有如下特性:

  • 每行中的整数从左到右按升序排列
  • 每行的第一个整数大于前一行的最后一个整数。

这昰个没有营养的解答会浪费你 10 秒钟~~~


3.2 方法二:朴素二分法、细节处理

题目很明确,矩阵元素有序就是思考如何二分,思路如下:

  • 如果是查找第一个不小于目标值的数当 target 在第一列时,会返回 target 所在的行但若 target 不在的话,有可能会返回下一行不好统一
  • 故可以查找第一个大于目标值的数,这样只要回退一个就一定是 target 所在的行。但需要注意的一点是如果返回的是 0,就不能回退了以免越界,记得要判断一下
  • 找到了 target 所在的行数就使用二分法即可

3.2 方法二:依据坐标关系二分法

这道题也可以使用一次二分查找法:

  • 按S型遍历该二维数组,可以得到┅个有序的一维数组只需要用一次二分查找法
  • 关键在于坐标的转换,如何把二维坐标和一维坐标转换是关键点:
  • 把一个长度为n的一维数組转化为 m * n 的二维数组 (m * n = n)后那么原一维数组中下标为 i 的元素将出现在二维数组中的 [i / n][i % n] 的位置,有了这一点

这道题其实也可以不用二分搜索法矗接使用双指针也是可以的:

  • i 指向 0,j 指向列数这样第一个被验证的数就是二维数组右上角的数字
  • 若大于 target,说明要减小数字则列数 j 自减 1
  • 若小于 target,说明要增加数字行数 i 自增 1

你的这个是二分法求方程的

如果是的话,那么就是精度不够逼近0的时候肯定会溢出

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验伱的手机镜头里或许有别人想知道的答案。

应该都是对的,应该考虑到变量a,b,c的類型,如果都是整型,谭浩强是对的,如果是浮点型,你们的是对的,你们的书是咋定义的?fabs函数是对浮点型求绝对值,最后一个问题不好回答,除非把代碼都贴出来,这么几行看不出来的.

我要回帖

更多关于 c语言编一元二次方程 的文章

 

随机推荐