注册 登录
编程论坛 C++教室

大家看下这个题目

aiyinsitan 发布于 2010-12-20 22:56, 417 次点击
只有本站会员才能查看附件,请 登录
这是我题目
我的代码
#include "iostream.h"
#include "math.h"
#include "iomanip.h"
void main()
{
    float a,b;
    cin>>a;
    b=sqrt(a);
    cout <<setiosflags(ios::fixed)<<setprecision(3)<<b;
}我是套答案的,不知道正确的该怎么做
5 回复
#2
zhoufeng19882010-12-21 13:43
程序代码:
/*

 * File Name: Easy.cpp

 * Date: 2010/12/21

 * Auto: ZhouFeng

 
*/

#include <iostream>
#include <iomanip>

using std::cout;
using std::endl;
using std::cin;
using std::setiosflags;
using std::ios;
   
const double END_RECURSION = 0.00001;                // 循环结束条件
   
double CountX( double, double, double);           
double FloatAbs( double);                            // 计算double类型绝对值

int main()
{
    while( true)
    {
        cout << "Please enter the value of A:\n";
        double A;
        cin >> A;
        double result = CountX( 1, 2, A);
      
        cout << setiosflags( ios::fixed) << std::setprecision(3) << result << endl;
    }
   
    return 0;
}

double CountX( double preX, double lstX, double a)
{
    while( true)
    {
        lstX =  ( preX + a / preX) / 2;
        if ( FloatAbs( preX - lstX) > END_RECURSION)
        {
            preX = lstX;
            lstX = ( preX + a / preX) / 2;
        }
        else
        {
            break;   
        }
    }
   
    return preX;
}

double FloatAbs( double num)
{
    double res = num;
   
    if( num < 0)
    {
        res = -1 * res;
    }
   
    return res;
}


这样,可否?

[ 本帖最后由 zhoufeng1988 于 2010-12-21 13:44 编辑 ]
#3
zhoufeng19882010-12-21 13:46
对了,同学。
你截图的时候在听,知己自己啊??

不错的歌~我大学时候也爱听。
#4
aiyinsitan2010-12-21 20:00
回复 3楼 zhoufeng1988
恩 这也被你发现了 囧了
#5
aiyinsitan2010-12-21 20:03
#include<iostream>
#include<cmath>
#include "iomanip"
using namespace std;
int main(){
    float x0,x1,a;
    cout<<"输入一个正数:"<<endl;
    cin>>a;
    if(a<0)  
    cout<<a<<"不能开平方!"<<endl;
    else {                                        //有实数解的情况
        x1=a/2;                                    //x1用作保存结果
        do {
            x0=x1;
            x1=(x0+a/x0)/2;
        } while (fabs(x1-x0)>=1e-5);
        cout <<setiosflags(ios::fixed)<<setprecision(3)<<x1;
    }
    return 0;
}
                                                                                       
#6
aiyinsitan2010-12-21 20:03
直接说用迭代法求开方吗,搞成这样我看多看不懂
1