以下是可以正常运行的C++代码程序:
#include<iostream>
#include<cstring>
const int maxn = 1510;
long long minnum[maxn][maxn];
using namespace std;
int main() {
int n;
cin>>n;
for(int i = 0; i < n; i++)
for(int j = 0; j <= i; j++)
cin>>minnum[i][j];
for(int i = n-2; i >= 0; i--)
for(int j = 0; j <= i; j++)
if(minnum[i+1][j] < minnum[i+1][j+1])
minnum[i][j] = minnum[i][j] + minnum[i+1][j];
else minnum[i][j] = minnum[i][j] + minnum[i+1][j+1];
cout<<minnum[0][0];
return 0;
}
但是将long long minnum[maxn][maxn]开在main函数内,并加一句”memset(minnum, 0, sizeof(minnum));"在Windows下运行,会出现无法输入的情况,这是为什么?
#include<iostream>
#include<cstring>
const int maxn = 1510;
using namespace std;
int main() {
long long minnum[maxn][maxn];
memset(minnum, 0, sizeof(minnum));
int n;
cin>>n;
for(int i = 0; i < n; i++)
for(int j = 0; j <= i; j++)
cin>>minnum[i][j];
for(int i = n-2; i >= 0; i--)
for(int j = 0; j <= i; j++)
if(minnum[i+1][j] < minnum[i+1][j+1])
minnum[i][j] = minnum[i][j] + minnum[i+1][j];
else minnum[i][j] = minnum[i][j] + minnum[i+1][j+1];
cout<<minnum[0][0];
return 0;
}