1樓:網友
我認為問題在這句話:max(d1,max(d2,d3));
函式原型為double max(double& ,double& )返回值為乙個類物件,並不是引用,也就是說,該物件的作用於僅在max函式範圍內,當函式返回後該物件就不存在了,而max(d1,max(d2,d3))以 max(d2,d3)為引數,實際上是訪問乙個不存在的變數,所以會有錯,將函式定義為double max(double& ,double )就沒有問題了。
建議嘛,雖然不是高手,但還是可以給一點的,物件導向的程式設計,資料最好宣告為private。還有函式定義最好不要在主函式里,記得寫標頭檔案,哈哈。
2樓:網友
ls說的很中肯,開始我也以為是對的,不過細看就發現問題了。
lz你這個寫的基本能正確,唯一的錯誤就是。
double max(double& a,double& b)if (a>b)
return a;
else return b;
把這段**移到mian函式前面就行了,函式不能巢狀定義這樣的基本常識我不知道為什麼你不知道,其他的都是細節問題,比如你應該過載=運算子的,然後就是寫程式不要寫沒有用的,你那個過載》和《沒用到,何必寫?而且預設的也會工作的很好,資料生命為private的話,你這個程式通不過哦。
3樓:網友
#include
using namespace std;
class double
double(double t){
d=t;bool operator >(const double& two)
if(d>
return true;
elsereturn false;
bool operator <(const double& two)if(db)
return a;
elsereturn b;
int main()
double a,b,c;
cout<<"請輸入三個double型數:";
cin>>a>>b>>c;
double d1=a, d2=b, d3=c;
cout<<"其中最大的數是:"double d=_max(d1,_max(d2,d3));
cout<<今天熄燈了,明天給你講吧 ,/剛幫你修改的能執行,我用的是linux下的g++
沒時間了,明天。
C 編寫程式,如題,C 編寫一個程式,如題
include void main int i double n,s 1 定義doublefor i 1 i 30 i int a 1 n 1 初始化 while a i n n 1.0 a a a 1 這裡是等於 s s n cout 和為 第二題 include void main int i ...
c語言的程式困惑,c語言的一個程式困惑
你的定義裡應該是 define y x 1 否則就成了 5 1 5 2 再取整就是7 這個define一般是定義常數用的,定義全域性變數直接用int y x 1就行 define是定義一個巨集,巨集的意思就是用一串字元來代替令一串字元,只是簡單的替換。你可以把z z由y x 2替換掉,y由x 1替換...
初學C 的一個問題!C 基礎問題,謝謝解答!
namespace,是指識別符號的各種可見範圍。c 標準程式庫中的所有識別符號都被定義於一個名為std的namespace中。由於namespace的概念,使用c 標準程式庫的任何識別符號時,可以有三種選擇 1 直接指定識別符號。例如std ostream而不是ostream。完整語句如下 std ...