Re: [問題] 一個迴圈內的問題~

看板C_and_CPP (C/C++)作者 (Larry)時間16年前 (2009/05/10 13:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《asb ((  ̄ c ̄)y▂ξ)》之銘言: : int isin(int nums[], int length, int key) : { : int i; : for (i=0;i<length;i++) : { : if (nums[i]==key) : return (1); : } : return (0); : } : 這程式的意思是在陣列中尋找一個數字,若該數字存在於陣列則傳回1,否則傳回0。 : 如 nums1[]={3,5,3,2453,-7,0}; : isin(nums1,6,-7); : 其結果為1 : 以上這個程式我看的懂~ : ------------------------------------------------ : void printonce(int nums[], int length) : { : int i,j; for (i=1;i<=length;i++) //但從以下這程式~我完全想不出過程 //尋找數字陣列同第一位收開始搜尋起 : { for (j=0;j<i;j++) // 重點在"j<i" 代表在搜尋每一個數字, // 都會再從頭比對起, // 一直比對到前一位數字, // 例如要決定是否列出第三個,再重新比對第1~2個數 // 決定是否要列出第五個數字,會先重新比對第1~4個數 // 以此類推 if (isin(nums, i-1, nums[j])==0) // 回傳值為0代表該數字沒有與之前重覆到, 所以為true, // 印出來吧! : printf("%d\n",nums[j]); : } : } : 這題目主要是找出陣列中的所有數字列印出來,但限制是重覆出現的數字只能出現一次 : 例如: : nums1[]={3,5,3,2453,-7,0}, : printonce(nums1,6); : 其結果為 : 3 : 5 : 2453 : -7 : 0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.110.243
文章代碼(AID): #1A1cB-s7 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A1cB-s7 (C_and_CPP)