Re: [問題] 關於函數、陣列 互換問題
你已經知道交換兩個數字是這樣寫了
int temp;
temp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
因此你的問題就成了:
如何找出你想交換的兩個數字的位置,只要找出來就可以寫完了
int find_min_odd_index(int *arr)
{
從 arr 裡面找出最小奇數的位置,並且回傳
}
int find_max_even_index(int *arr)
{
從 arr 裡面找出最大偶數的位置,並且回傳
}
void MyOddEven(int *arr)
{
int min_odd_index, max_even_index, temp;
min_odd_index = find_min_odd_index(arr);
max_even_index = find_max_even_index(arr);
temp = arr[min_odd_index];
arr[min_odd_index] = arr[max_even_index];
arr[max_even_index] = temp;
}
現在你只需要確定那兩個函式是正確的就可以了
所以你可以準備一個這樣的main來做測試:
int main()
{
int arr[] = {12, 90, 81, 17};
if (find_min_odd_index(arr) == 3)
{
printf("正確找到最小奇數了");
}
if (find_max_even_index(arr) == 1)
{
printf("正確找到最小偶數了");
}
}
只要這個測試通過應該就成功囉 XD
--
實際上不一定要這麼囉嗦,但寫程式本來就是像這樣的流程
(1) 把問題拆解成好幾個小問題:找出兩個要交換數字的位置、交換它
(2) 正確的解決每一個小問題:正確的找出來,正確的交換
(3) 把這些解法合在一起,就可以解決原問題了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
推
05/02 02:54, , 1F
05/02 02:54, 1F
※ 編輯: james732 來自: 140.117.171.46 (05/02 02:55)
推
05/02 03:18, , 2F
05/02 03:18, 2F
板主人真好 〒△〒
推
05/02 03:20, , 3F
05/02 03:20, 3F
我最近真的在看敏捷開發的書耶,覺得還挺有道理的 XD
※ 編輯: james732 來自: 140.117.171.46 (05/02 03:50)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
3
25
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章