一直数组上溢,本来想说是不是给分配的内存少,超过30个的数组要分开几次存储,结果!只要把数组定义语句放在while里面就行了,写了好久。。
#include <iostream> using namespace std; int main() { int n; while (cin >> n) { // 注意 while 处理多个 case int *a = new int[n]; int i; for (i = 0; i < n; i++){ cin >> a[i]; } for(int i = 0; i < n; i++){ if (i == 0 && a[i] != a[i+1]) cout<<i<<" "; else if (a[i] > a[i+1] && a[i] > a[i-1]) cout<<i<<" "; else if (a[i] < a[i+1] && a[i] < a[i-1]) cout<<i<<" "; else if (i == n-1 && a[i-1] != a[i]) cout<<i<<" "; } cout<<endl; } } // 64 位输出请用 printf("%lld")