以下代碼在調試期間總是在delete [] p1;之前中斷。我不知道如何得到這個工作:(內存和指針在發佈之前破解
#include <iostream>
#include <iomanip>
int main() {
int N = 0;
double max = 0;
std::cin >> N;
double *p1 = new double[N];
for (int i = 0; i < N; i++) std::cin >> p1[N];
for (int i = 0; i < N - 1; i++)
{
if (p1[i] < p1[i + 1]) max = p1[i + 1];
else max = p1[i];
}
for (int i = 0; i < N; i++)
{
if (p1[i] == max) continue;
else std::cout << std::setprecision(2) << std::fixed << p1[i] << '\n';
}**strong text**
std::cout << std::setprecision(2) << std::fixed << max << '\n';
delete[] p1;
return 0;
}
另一個問題是你的'max'搜索實際上沒有找到最大值,而且很難看出第三個循環的目的是什麼 –