我有以下2個dim陣列。我想找出每列有1
的列。C++哪些列在2個dim陣列中每行有1s
所以,當我運行下面的代碼,我希望看到:
0:02 1:13 3:01
但是我不明白這一點。
有什麼建議嗎?
#define MAX_N 100
int myArray[4][4] = {
{ 1,0,0,1 },
{ 0,1,1,1 },
{ 1,0,1,0 },
{ 0,1,1,0 }
};
int main()
{
int K[MAX_N] = { 0,1,3 };
int B[MAX_N];
for (int i = 0; i < 3; i++)
{
K[i];
cout << K[i] << ": ";
for (int x = 0; x < 4; x++)
{
int count = 0;
for (int y = 0; y < 3; y++)
{
// count = count +1;
if (myArray[x][y])
count = count + 1;
if (count == K[i])
{
B[x] = x;
cout << B[x] << " ";
}
}
}
}
system("pause");
return 0;
}
如果我改變了最初的陣列,使其爲:
int myArray[4][4] = {
{ 1,1,0,1 },
{ 0,1,1,1 },
{ 1,0,1,0 },
{ 0,1,1,0 }
};
我會得到如下結果:
0: 02 1:013 3: 01
有沒有什麼辦法讓這些的交集?換句話說,只得到0,因爲當列等於K [i]時,在行之間只有0是共同的。那麼,結果將是:
0:0 1:0 3:0
甚至只是
0
希望這是有道理的
幾乎在1000代表...將幫助你。 – Walter
@Walter我有點興奮地解決一個不清楚的問題。謝謝你! :-) –
是的,我問的不是很清楚。是indedd,我想要的是當列等於K [i]時,得到哪些行包含1。所以,這篇文章回答了我的問題。謝謝! 當一個人運行此代碼,然後出現: 0:02 1:13 3:01,這是我想要的。 – AlPap