這是我用來查找 10 個元素之間的最高和最低數字的代碼:
#include <iostream>
using namespace std;
#define SIZE 10
void acceptNumbers (int Numbers[SIZE]);
int High(int Numbers[SIZE]);
int Low(int Numbers[SIZE]);
void acceptNumbers(int Numbers[SIZE])
{int i, *max, *min;
for (i=0; i<SIZE; i )
cin>>Numbers[i];
max = Numbers;
min = Numbers;
}
int High(int Numbers[SIZE])
{int i, *max;
for (i = 0; i < SIZE; i )
{
if (*(Numbers i) > *max)
max = (Numbers i);
}
cout<<*max;
}
int Low(int Numbers[SIZE])
{int i, *min;
for (i = 0; i < SIZE; i )
{
if (*(Numbers i) < *min)
min = (Numbers i);
}
cout<<*min;
}
int main()
{
int arr[SIZE];
cout<<"Enter Elements: \n";
acceptNumbers(arr);
cout<<"Highest Number: ";
High(arr);
cout<<endl;
cout<<"Lowest Number: ";
Low(arr);
cout<<endl;
}
在我的電腦上,它不會運行整個程式。當它到達查找最高和最低數字的代碼時,它就停止了

這是我正在做的作業,我不能使用任何快捷方式和諸如此類的東西,因為給出了需要使用的代碼行。所以我嘗試在另一臺 PC 上運行這段代碼,它作業得很好:

我還嘗試在在線 c 編譯器上運行它,但它仍然無法正常作業。我在網上找不到解決方案,所以這是我最后的手段,請幫助我
uj5u.com熱心網友回復:
您的代碼表現出未定義的行為。
在您的每個函式中,您都將min和宣告max為區域變數。因此,當您初始化min/ maxin 時acceptNumbers(),它們僅在該函式中初始化。您根本沒有在/中初始化min/max變數。當這些函式嘗試取消參考那些未初始化的變數時,您的代碼會崩潰。High()Low()
此外,您的High()/Low()函式具有非void回傳型別,但實際上并沒有return任何值。
試試這個:
#include <iostream>
using namespace std;
#define SIZE 10
void acceptNumbers (int Numbers[SIZE]);
int High(int Numbers[SIZE]);
int Low(int Numbers[SIZE]);
void acceptNumbers(int Numbers[SIZE])
{
for (int i=0; i<SIZE; i )
cin>>Numbers[i];
}
int High(int Numbers[SIZE])
{
int *max = Numbers;
for (int i = 1; i < SIZE; i )
{
if (*(Numbers i) > *max)
max = (Numbers i);
}
return *max;
}
int Low(int Numbers[SIZE])
{
int *min = Numbers;
for (int i = 1; i < SIZE; i )
{
if (*(Numbers i) < *min)
min = (Numbers i);
}
return *min;
}
int main()
{
int arr[SIZE];
cout<<"Enter Elements: \n";
acceptNumbers(arr);
cout<<"Highest Number: ";
cout<<High(arr);
cout<<endl;
cout<<"Lowest Number: ";
cout<<Low(arr);
cout<<endl;
}
uj5u.com熱心網友回復:
函式 Low() 和 High() 只宣告 int* max, min 但從不初始化。盡管他們持有無效的地址。
if (*(Numbers i) > *max)
此函式會導致分段錯誤,因為您的程式試圖取消參考無效的記憶體地址。
如果您想存盤它們,請將int *min, *max它們設為全域或在 main() 中宣告它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/450308.html
