c语言用以下算法找出小于1的正实数r(>1.0)的平方根√r的值。

c语言,编写一个程序,用以下算法找出小于1的正实数r(>1.0)的平方根√r的值。
(1) 输入r(>1.0)
(2) 让x=1,y=r作为初始值,满足x≤√r≤y。
(3) 重复以下过程100次。
(4) 如果((x+y)/2)2<r,将x改为(x+y)/2,否则将y改为(x+y)/2。
(5) 输出(x+y)/2的值

楼主 您好 ,这里 是我的理解 , 望楼主指教


#include <stdio.h>
#include <math.h>

int main(){
    double r; // 定义r
    double x = 1; // 定义x ,并初始值为 1
    double y; // 定义 y 

    scanf("%lf",&r); // 让用户输入 r
    y = r; // 将r 的 值 赋给 y

    for(int i = 0;i<100;i++){// for循环的 r 用来计次
        if((((x + y)/2)*2) < r){
            x = ((x + y) / 2); // 这两句 如 题中所说
        }else {
            y = ((x + y) / 2);
        }
    }
    printf("ans = %lf\n",(x + y)/2);
}

楼主 有什么问题 可以继续问我, 望采纳 ...

有原题目吗,我怎么看着有点蒙,小于1的正实数r(>1.0)?