关于#c++#的问题:C++改错

C++改错,求改错结果以及原因分析

一:

程序位于每个“//ERRORfound”下的语句行有错误,请加以更正。

更正后程序的输出应该是:

 0

 10

[程序]

//main.cpp

#include

using namespace std;

class Class_Object{

public:

       //ERROR**********found**********

       void Class_Object(int=0);

       void set(int);

       int get();

private:

       int member;

};

Class_Object::Class_Object(int m):member(m){}

void Class_Object::set(int m)

{

       //ERROR**********found**********

       m=member;

}

int Class_Object::get()

{

       return member;

}

int main()

{

       Class_Object test;

       cout<get()<//ERROR**********found**********

       test.member=10;

       cout<get()<system("pause");

       return 0;

}

说明:
只能修改每个“//ERRORfound”下的那一行,不要改动程序中的其他内容,也不能删除或移动“//ERRORfound”。


在主函数中定义了一个幂类的对象,程序实现了求xn并输出结果。请在程序中“//found”下的横线处填写适当的代码,然后删除横线,以实现上述类定义。

此程序的正确输出结果应为:

 0.5^0=1

 0.5^1=0.5

 2^10=1024

 2^-3=0.125

 [程序]

//main.cpp

#include

using namespace std;

class Powers{

public:

       void print(double,int);                         // 按指定格式输出结果

       double features(double x,int n);                // 用递归法求x的n次方的值,即xn

};

//**********found**********

void ____________ print(double x,int n)

{

       //**********found**********

       cout<'^'<'='<< ____________ <double Powers::features(double x,int n)

{

       int k;

       if(n==0)return 1.0;        // x的0次方为1

       else if(n==1)return x;           // x的1次方为x

       else if(n<0){                 // n<0时x的n次方的值

              //**********found**********

              ____________ ;

              return 1/x*features(x,k);

       }

       else{                                   // n>0且n不为1时x的n次方的值

              k=n-1;

              //**********found**********

              return  ____________ ;

       }

}

int main()

{

       Powers test;

       test.print(0.5,0);

       test.print(0.5,1);

       test.print(2,10);

       test.print(2,-3);

       return 0;

}

//main.cpp
#include
using namespace std;
class Class_Object{
public:
       //ERROR**********found**********
       Class_Object(int=0);   //构造函数没有返回值
       void set(int);
       int get();
private:
       int member;
};
Class_Object::Class_Object(int m):member(m){}
void Class_Object::set(int m)
{
       //ERROR**********found**********
       member = m;   //赋值写反了
}
int Class_Object::get()
{
       return member;
}
int main()
{
       Class_Object test;
       cout<get()<//ERROR**********found**********
       //test.member=10;
       test.set(10);    //member是私有变量,不可以直接访问
       cout<get()<system("pause");
       return 0;
}


//main.cpp
#include <iostream>
using namespace std;
class Powers{
public:
       void print(double,int);                         // 按指定格式输出结果
       double features(double x,int n);                // 用递归法求x的n次方的值,即xn
};
//**********found**********
void Power:: print(double x,int n)
{
       //**********found**********
       cout<<x<<'^'<<n<<'='<< feature(x,n);
}
double Powers::features(double x,int n)
{
       int k;
       if(n==0)return 1.0;        // x的0次方为1
       else if(n==1)return x;           // x的1次方为x
       else if(n<0){                 // n<0时x的n次方的值
              //**********found**********
              x=-x ;
              return 1/x*features(x,k);
       }
       else{                                   // n>0且n不为1时x的n次方的值
              k=n-1;
              //**********found**********
              return  x*features(x,k) ;
       }
}
int main()
{
       Powers test;
       test.print(0.5,0);
       test.print(0.5,1);
       test.print(2,10);
       test.print(2,-3);
       return 0;
}



```c++

Class_Object(int=0);   //构造函数没有返回值
member = m;   //赋值写反了
test.set(10);    //member是私有变量,不可以直接访问

```

//main.cpp
#include
using namespace std;
class Class_Object{
public:
       //ERROR**********found**********
       Class_Object(int=0);
       void set(int);
       int get();
private:
       int member;
};
Class_Object::Class_Object(int m):member(m){}
void Class_Object::set(int m)
{
       //ERROR**********found**********
       member=m;
}
int Class_Object::get()
{
       return member;
}
int main()
{
       Class_Object test;
       cout<get()<//ERROR**********found**********
       //test.member=10; //有个疑问为什么cout可以只有<
       test.set(10);
       cout<get()<system("pause");
       return 0;
}

参考一下