【发布时间】:2017-07-13 09:18:46
【问题描述】:
我希望在由以下逻辑定义的给定多维数组中找到作为输入的数字的出现次数:
...
int n,x,count=0;
cin>> n >> x;
int a[n][n] ;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
a[i][j]= i*j ;
}
}
for( int i=1;i<=n;i++)
{
for( int j=1;j<=n;j++)
{
if(a[i][j] == x)
++count;
}
}
cout<< count ;
...
例如,如果我输入 6(n) 和 12(要查找其出现次数,x 此处)。多维数组看起来像这样:
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18
4 8 12 16 20 24
5 10 15 20 25 30
6 12 18 24 30 36
现在,12 的出现次数是 4(计数)。
但是当我给n 10 和x 5 时,程序停止工作。我似乎无法找到正在发生的事情。有人可以帮我吗?
另外我可以通过什么方式修改我的代码?
n 大到 1000 或 10k 的情况如何处理而不改变程序的逻辑?
【问题讨论】:
-
请提供minimal reproducible example。您不会显示包含错误的代码,而只会显示如何填充数组
-
你只显示了一半的代码,在哪里找到数字代码?
-
我现在已经编辑过了。谢谢。
-
int a[n][n] ;-- 这不是有效的 C++。 C++ 中的数组不能使用变量来表示条目的数量。 -
示例 -- Doesn't compile here.
标签: c++ c++11 multidimensional-array