使用devc++编译出现定义二维数组后程序能运行,但未进行输入,也没有输出的情况
#include<bits/stdc++.h>
using namespace std;
int b[1001][1001]={0};
int ans[1001][1001]={0};
int a[1001];
int main()
{
int b[1001][1001]={0};
int ans[1001][1001]={0};
int a[1001];
int n,m,k;
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>b[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(!ans[j][b[i][j]])
{
ans[j][b[i][j]]=1;
a[b[i][j]]++;
}
}
}
for(int i=1;i<=k;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
原因:二维数组过大导致崩溃
解决方法:将二维数组定义在main函数之外
#include<bits/stdc++.h>
using namespace std;
int b[1001][1001]={0};
int ans[1001][1001]={0};
int a[1001];
int main()
{
···
}
初次之外,数组a【1001】在main函数内会附随机值,放在main函数外才会自动初始化为0