1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | #include <stdio.h> #include <stdlib.h> /* 傳入一個整數指標(記憶體位址)當基底, 讀入五個整數, 放到 * 以這個基底往後的連續五個整數變數的空間裡 */ void input_5_values(/*int *ptr*/int array[] ) { // ↑改成這樣, 你應該就知道參數是要傳陣列 int k, temp; for(k=1; k<=5; k++) { printf("\n 第%d個:" , k); scanf("%d" ,&temp ); //*(ptr+k)=temp; array[ k ] = temp; } } /* 你少寫的函式, 找出一個陣列索引為 1 ~ 5 的元素中最大元素的記憶體位址 */ void Find_Max( int *pResult, int array[] ) { // ↑參數是陣列 int k; *pResult = array[1]; for(k=1; k<=5; k++) { if( *pResult < array[k] ) *pResult = array[k]; } } /* 你少寫的函式, 找出一個陣列索引為 1 ~ 5 的元素中最小元素的記憶體位址 */ void Find_Min( int *pResult, int array[] ) { // ↑參數是陣列 int k; *pResult = array[1]; for(k=1; k<=5; k++) { if( *pResult > array[k] ) *pResult = array[k]; } } int main(int argc, char *argv[]) { int k, v, a[6]; int max,min; input_5_values( a ); // 傳陣列 a 進去 /* 這邊也是在做輸入的動作, 上面呼叫 input_5_values 的時候 早就把輸入的動作做完了, 註解的這塊是多餘的 for(k=1; k<=5; k++) { printf("\n 第%d個:" , k); scanf("%d" ,&temp ); a[k]=temp; } */ for (k=1; k<=5; k++) { printf("\n 功能選項 1.找最大值 2.找最小值 3.存檔 "); printf("\n 選第幾個功能 : "); scanf("%d",&v); //sacnf("%d",&v); ←函式名稱打錯 switch(v) { case 1: Find_Max(&max, a); // 傳陣列a, 不要傳陣列a的位址 printf("max : %d\n", max); // 你少加的一行, 沒印出來怎麼知道找到哪個數字? break; case 2: Find_Min(&min, a); // 傳陣列a, 不要傳陣列a的位址 printf("min : %d\n", min); // 你少加的一行, 沒印出來怎麼知道找到哪個數字? break; case 3: break; } }// ← 這裡是本來忘記加上的右括號 system("PAUSE"); return 0; } |
Direct link: https://paste.plurk.com/show/272424