#include<iostream>
namespace std;
void fun(double a, double b, double p1, double p2);
int main()
{
double a,b,p1,p2;
cout << "輸入2個數:"<<endl;
cin>>a>>b;
fun (a,b,p1,p2);
cout<<"結果為:"<<p1<<" "<<p2;
return 0;
}
void fun(double a, double b, double p1, double p2)
{
p1=a+b;
p2=(a-b)?(-(a-b)):(a-b);
}
照著值傳遞的例子,試著寫完了,運行沒問題,但是結果是錯的,實在是不知道怎么解決,求各位大佬指教
uj5u.com熱心網友回復:
主函式里的p1,p2和fun里的p1,p2完全沒有關系uj5u.com熱心網友回復:
#include<iostream>
using namespace std;
void fun(double a, double b, double p1, double p2);
int main()
{
double a, b, p1=0, p2=0;
cout << "輸入2個數:" << endl;
cin >> a >> b;
fun(a, b, p1, p2);
return 0;
}
void fun(double a, double b, double p1, double p2)
{
p1 = a + b;
p2 = (a - b) ? (-(a - b)) : (a - b);
cout << "結果為:" << p1 << " " << p2;
}
照著你的改的,總感覺有點別扭
uj5u.com熱心網友回復:
那怎么建立聯系呢?uj5u.com熱心網友回復:
沒有必要形參p1,p2
就傳a,b進去
建立聯系什么意思
uj5u.com熱心網友回復:
我試試看要是改用地址傳遞的話,把p1,p2改成*p1,*p2 就行嗎?
uj5u.com熱心網友回復:
你想腫么改,發一下吧
用代碼更容易溝通
uj5u.com熱心網友回復:
#include<iostream>using namespace std;
void fun(double a, double b, double *p1, double *p2);
int main()
{
double a, b, p1=0, p2=0;
cout << "輸入2個數:" << endl;
cin >> a >> b;
fun(a, b, &p1, &p2);
return 0;
}
void fun(double a, double b, double *p1, double *p2)
{
*p1 = a + b;
*p2 = (a - b) ? (-(a - b)) : (a - b);
cout << "結果為:" << p1 << " " << p2;
}
這樣吧...
uj5u.com熱心網友回復:
#include<iostream>using namespace std;
void fun(double a, double b, double *p1, double *p2);
int main()
{
double a, b, p1=0, p2=0;
cout << "輸入2個數:" << endl;
cin >> a >> b;
fun(a, b, &p1, &p2);
return 0;
}
void fun(double a, double b, double *p1, double *p2)
{
*p1 = a + b;
*p2 = (a - b) ? (-(a - b)) : (a - b);
cout << "結果為:" << p1 << " " << p2;
}
這樣吧...
uj5u.com熱心網友回復:
我一改,結果又出錯了
uj5u.com熱心網友回復:
#include<iostream>
using namespace std;
void fun(double *a, double *b);
int main()
{
double a, b;
cout << "輸入2個數:" << endl;
cin >> a >> b;
fun(&a, &b);
return 0;
}
void fun(double *a, double *b)
{
double p1, p2;
p1 = *a + *b;
p2 = (*a - *b) ? (-(*a - *b)) : (*a - *b);
cout << "結果為:" << p1 << " " << p2;
}
傳p1,p2沒有用
uj5u.com熱心網友回復:
哦哦,那要使用參考地址傳遞的是不是#include<iostream>
using namespace std;
void fun(double a&, double b&, double p1, double p2);
int main()
{
double a, b, p1=0, p2=0;
cout << "輸入2個數:" << endl;
cin >> a >> b;
fun(a, b,p1,p2);
return 0;
}
void fun(double &a, double &b, double p1, double p2)
{
p1 = a + b;
p2 = (a - b) ? (-(a - b)) : (a - b);
cout << "結果為:" << p1 << " " << p2;
}
這樣就好了
uj5u.com熱心網友回復:
是的,在形參前面加&就可以了uj5u.com熱心網友回復:
p1=&a+&b出錯了
uj5u.com熱心網友回復:
函式里面就不用加&了
還是和值傳遞一樣寫就可以了
uj5u.com熱心網友回復:
終于都解決了,謝謝老師
uj5u.com熱心網友回復:
不客氣
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84699.html
標籤:C++ 語言
上一篇:C語言 輸入正整數將正整數分解質因數。質因數要滿足兩個條件:1)是這個數的因數;2)是質數(素數)如: 6=2*3 12=2*2*3 課后作業
