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
#include <stdio.h>
#include <stdlib.h>

/* 傳入一個整數陣列, 讀入五個整數並放在索引為 1 ~ 5 的空間裡
 */
 
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;
}