看板 C_Sharp 關於我們 聯絡資訊
※ 引述《APE36 (PT鄉民)》之銘言: : int main() : { : int array_a[5]={11,22,33,22,44}; : int array_b[5]={11,22,33,22,44}; : int array_c[5]; : int i,j; : for(i=0;i<5;i++) : { : for(j=0;j<5;j++) : { : if(array_a[i]!=array_b[j]) : { : printf("%d\n",array_a[i]); : break; : } : } : } : return 0; : } : 假如題目我判斷相同的才輸出,但是重複過的不輸出 : 這程式哪裡有需要做判斷呢? : 覺得因該判斷式都已經做完了 : 只不過重複的值 沒做出正確的判斷 int[] Array_1 = { 11, 22, 33, 22, 44 }; int[] Array_2 = { 11, 22, 33, 22, 44 }; List<int> Array_3 = new List<int>(); for (int i = 0; i < Array_1.Length; i++) { if (Array_1[i] == Array_2[i]) //判斷兩個陣列同位置有重複的話丟入 { Array_3.Add(Array_1[i]); } } //然後直接Distinct之後輸出 foreach (int Result in Array_3.Distinct()) { Console.WriteLine(Result); } Console.ReadKey(); 輸出結果 11 22 33 44 剛剛才發現 if(array_a[i]!=array_b[j]) { printf("%d\n",array_a[i]); break; } 你這個是判斷不重複吧 囧? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.149.79 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1396095418.A.10B.html
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