本人初學C ,寫了乙個程式不能執行,請高手指出錯誤。

2025-01-05 12:45:04 字數 1211 閱讀 2202

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 ...