C語言:10個元素整型陣列,最小值和第一個元素交換,最大值與最後一個元素交換

Caleb_Sung發表於2018-04-10

題目來源:大工慕課 連結
作者:Caleb Sung

注意事項

  • 記得記錄一下最大值最小值的位置,方便後邊題目中要求的交換操作(這裡我使用的是pmax, pmin)

解答示範

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(){
    int i, a[10], max, min, pmax, pmin, tmp; 
    srand(time(NULL));
    for(i=0; i<10; i++){
        a[i] = rand()%100+0;
    }

    printf("這十個數分別為:\n");
    for (i=0; i<10; i++){
        printf("%d\t", a[i]);
    }

    max = a[0];
    pmax = 0;
    for(i=1; i<10; i++){
        if(a[i] > max){
            max = a[i];
            pmax = i;
        }
    }
    printf("\n\n最大值:\t%d", max);

    min = a[0];
    pmin = 0;
    for(i=1; i<10; i++){
        if(a[i] < min){
            min = a[i];
            pmin = i;
        }
    }
    printf("\n最小值:\t%d", min);

    tmp = a[0];
    a[0] = a[pmin];
    a[pmin] = tmp;

    tmp = a[9];
    a[9] = a[pmax];
    a[pmax] = tmp;

    printf("\n\n經過調整過後的十個數分別為:\n");
    for (i=0; i<10; i++){
        printf("%d\t", a[i]);
    }

} 

相關文章