[問題] 抓不到錯誤
/*請設計一個主程式,輸入五個數字,將數字陣列傳入function,
並且將此function宣告為指標(int *maxmin (int a[]) ),
function計算出這五個數字中最大的數字與最小的數字並且放入陣列m[2]中,
利用指標回傳到主程式將這兩個數字列印出來。*/
#include<iostream>
using namespace std;
int *maxmin(int a[])
{
int m[2]={0, 999};
int *c = m;
int i=0;
for(i=0;i<5;i++)
{
if(a[i]>m[0])
m[0]=a[i];
if(a[i]<m[1])
m[1]=a[i];
}
return c;
}
int main(void)
{
int a[5];
int *d=new int[2];
int i=0;
d[1]=5;
cout << "請輸入字串" << endl;
for(i=0;i<5;i++)
cin >> a[i];
d = maxmin(a);
cout << *d << "," << *(d+1) << endl;
system("pause");
return 0;
}
在函數裡有印出來看,是正確的
但是一傳回主程式,d[1]就會變成很奇怪的值
有人可以解答嗎?
對指標不太熟,不知道有沒有多餘的程式碼
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.70.106.167
推
06/01 22:50, , 1F
06/01 22:50, 1F
→
06/01 22:52, , 2F
06/01 22:52, 2F
推
06/01 22:57, , 3F
06/01 22:57, 3F
推
06/01 23:03, , 4F
06/01 23:03, 4F
→
06/01 23:03, , 5F
06/01 23:03, 5F
→
06/01 23:06, , 6F
06/01 23:06, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章