[問題] 找第一個不重複的位置
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
QT C語言
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無 @@
問題(Question):
我在練習C語言的時候遇到一個問題是這樣的:
找出陣列中第一次出現重複數值的位置
例如: arr[] = {1,2,3,4,1,5,7};
則第一次出現重複的值的位置是 4 (arr[4]的值與arr[0]相同)
↑ ↑ 原本打錯了,感謝網友指正@@"
若 arr[] = {1,6,6,7,7,8,9}
則第一次出現重複的值的位置是 2 (arr[2]的值與arr[1]相同)
如果完全沒有重複,那就回傳 -1
現在可以確定的是:
1.陣列大小是固定的
2.陣列內數值皆為int
不確定的是:
1.陣列內數值不一定依大小排列
2.可能會有多組數字重複的情況
以下是我自己寫的,但不是很確定這樣寫法是不是有忽略甚麼 @@
所以想在這跟大家討論看看
#define TOTAL 7
int repeat_index(void)
{
int i,j;
int arr[TOTAL] = {1,2,3,4,5,1,7}; //測試用
for (i = 0; i < TOTAL; i++) {
for (j = 0; j < TOTAL; j++) {
if (i == j) continue;
if (arr[i] == arr[j]) {
return j;
}
}
}
return -1;
}
我的想法是,依序取出值來跟其餘的值做比較
因為自己跟自己比一定相同,所以當取出值的位置和被比較值的位置相同時就跳過
只要有遇到其他跟自己重複的值就馬上回傳該值的所在位置
若都沒有任何重複的,則回傳-1表示此陣列沒有任何值重複
雖然這樣寫看似是OK的
但我不確定是否有少考慮甚麼 @@
另外也想請問這個函數有沒有更好的寫法?
像我知道這樣寫如果遇到陣列個數比較多的情況會浪費更多時間
(因為跑兩層迴圈...)
大概就是這樣吧@@
小弟雖然知道基本C語言的語法
但對於這種最簡潔的寫法還是相當不行 囧
就請大家不吝指教了 @@
在此也先跟各位謝過了~~~
--
▍ ▍ ╯╰ ╯╰ ◢◣ ◢◣ 我最愛的 柏柏龍~ 柏柏龍~
◢██◣ ╮╭ ▎▎╮╭ ▎▎ 柏柏龍~ 柏柏龍~
⊙ ⊙ ◢ ◣ ⊙ ⊙ ◣ 人人心中都有柏柏龍~
≡ ▼ ≡ ▲▲ ● ● ≡ ▼ ≡ ■ ■ ■ ■ 憤怒就永遠不會消失~
皿 ◢⊙⊙◣ ≡皿 ≡ 皿 炸是最美的擁有~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.179.30
推
12/22 19:21, , 1F
12/22 19:21, 1F
→
12/22 19:22, , 2F
12/22 19:22, 2F
推
12/22 19:22, , 3F
12/22 19:22, 3F
→
12/22 19:23, , 4F
12/22 19:23, 4F
→
12/22 19:28, , 5F
12/22 19:28, 5F
※ 編輯: donby 來自: 59.120.179.30 (12/22 19:29)
推
12/22 19:33, , 6F
12/22 19:33, 6F
→
12/22 19:35, , 7F
12/22 19:35, 7F
→
12/22 19:36, , 8F
12/22 19:36, 8F
→
12/22 19:36, , 9F
12/22 19:36, 9F
→
12/22 19:36, , 10F
12/22 19:36, 10F
※ 編輯: donby 來自: 59.120.179.30 (12/22 19:37)
→
12/22 19:43, , 11F
12/22 19:43, 11F
→
12/22 19:45, , 12F
12/22 19:45, 12F
→
12/22 22:06, , 13F
12/22 22:06, 13F
→
12/22 22:07, , 14F
12/22 22:07, 14F
→
12/22 22:16, , 15F
12/22 22:16, 15F
→
12/22 22:17, , 16F
12/22 22:17, 16F
→
12/22 22:21, , 17F
12/22 22:21, 17F
→
12/22 22:51, , 18F
12/22 22:51, 18F
→
12/22 22:51, , 19F
12/22 22:51, 19F
→
12/22 22:52, , 20F
12/22 22:52, 20F
→
12/22 22:53, , 21F
12/22 22:53, 21F
→
12/22 22:54, , 22F
12/22 22:54, 22F
→
12/22 22:55, , 23F
12/22 22:55, 23F
→
12/22 22:55, , 24F
12/22 22:55, 24F
→
12/22 22:58, , 25F
12/22 22:58, 25F
→
12/22 23:04, , 26F
12/22 23:04, 26F
推
12/23 01:07, , 27F
12/23 01:07, 27F
→
12/23 01:09, , 28F
12/23 01:09, 28F
→
12/23 16:20, , 29F
12/23 16:20, 29F
→
12/23 17:55, , 30F
12/23 17:55, 30F
推
12/23 22:11, , 31F
12/23 22:11, 31F
→
12/28 00:52, , 32F
12/28 00:52, 32F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章