輸入數組長度 N 及 N 個整數,輸出最大值與最小值。標準動態內存 + 單次遍歷解法。
#include
#include
int main(void) {
int n, *arr, i, min, max;
printf("Input array index: ");
if (scanf("%d", &n) != 1 || n <= 0) return 1;
arr = malloc(n * sizeof(int));
if (!arr) return 1; // 分配失敗
printf("Input %d numbers: ", n);
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
min = max = arr[0]; // 初始化
for (i = 1; i < n; i++) {
if (arr[i] < min) min = arr[i];
if (arr[i] > max) max = arr[i];
}
printf("Maximum: %d\nMinimum: %d\n", max, min);
free(arr); // 釋放內存
return 0;
}
malloc 分配堆內存,用畢 free 釋放,防洩漏。min/max 初始化為 arr[0],避免 INT_MAX/MIN 依賴 。scanf 返回值、n > 0、malloc 非空。這是 C 語言動態數組處理的教科書級範例。