推 APE36:好像跑出來的結果不一樣 我跑出來是記憶體空間數字~"~ 03/29 23:22
→ APE36:不過你的輸出結果是我想要的,感謝!! 03/29 23:22
→ APE36:覺得我是用VS開發環境,不知道有不要嵌入外部函式的方法實作 03/29 23:24
→ APE36:嗎?? 因為我編譯器版本有點舊 03/29 23:25
→ m339606:看到你的printf,你不是用C#對吧? 03/29 23:26
→ m339606:可以土法煉鋼不過既然C#本身有更好用的程式碼就用囉 03/29 23:27
int[] Array_1 =
{ 11, 22, 33, 22, 44, 55, 22, 33, 44, 88, 66, 11, 99, 77, 88, 22 };
int[] Array_2 =
{ 11, 22, 33, 22, 44, 55, 22, 33, 44, 88, 66, 11, 99, 77, 88, 22 };
int[] Array_3 = new int[Array_1.Length];
//比對1跟2相同的會丟入3的相對位置,1跟2不相同的部分3的相對位置會是
0
for (int i = 0; i < Array_1.Length; i++)
{
if (Array_1[i] == Array_2[i])
{
Array_3[i] = Array_1[i];
}
}
//陣列3自我比較
for (int i = 0; i < Array_3.Length; i++)
{
for (int j = 0; j < Array_3.Length; j++)
{
if (i != j) //i == j的時候不可以比較,因為絕對相同
{
if (Array_3[i] == Array_3[j])
{
Array_3[j] = 0;
//當i跟j不相同但是數值相同時將後面那一格指定為0
}
}
}
}
for (int i = 0; i < Array_3.Length; i++)
{
if (Array_3[i] != 0)
{
//當不為0的時候輸出
Console.WriteLine(Array_3[i]);
}
}
Console.ReadKey();
輸出結果
11
22
33
44
55
88
66
99
77
※ 編輯: m339606 來自: 61.224.149.79 (03/29 23:56)
推 APE36:厲害,但是有一地方看不太懂 Array_3[i] == Array_3[j] 03/30 18:45
→ APE36:已經給定假如相同後面指定為0 但是//當不為0的時候輸出這裡 03/30 18:45
→ APE36:怎可以輸出正確資料出來0..0! 03/30 18:46
→ m339606:假設陣列為 11 22 33 22 44,後面那個22會被我改為0 03/30 19:00
→ m339606:之後輸出的時候判斷Array_3[i] != 0 他就不會再出現了 03/30 19:01
→ m339606:這解法針對不同情況會有些BUG,用集合用太習慣改原始陣列 03/30 19:02
→ m339606:還真的很不習慣 03/30 19:02