課本第八章-3 交換數字

ichizy發表於2020-12-26

輸入10個整數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換。輸出10個數。(該題請用指標完成)

Input
輸入10個整數(保證在int範圍內)。

Output
輸出處理後的10個整數。

Sample Input
33 2 3 22 5 6 11 8 9 10

Sample Output
2 10 3 22 5 6 11 8 9 33

#include"stdio.h"
void min(int a[])
{
    int* min = a, i, t = 0, k;

    for(i = 0; i < 10; i++)
    {
        if(*min > a[i])
        {
            min = &a[i];
            t = i;
        }
    }

    k = a[0];
    a[0] = *min;
    *(a + t) = k;
}
void max(int a[])
{
    int* max = a, i, t = 0, k;

    for(i = 0; i < 10; i++)
    {
        if(*max < a[i])
        {
            max = &a[i];
            t = i;
        }
    }

    k = a[9];
    a[9] = *max;
    *(a + t) = k;
}
int main()
{
    int a[10], i;

    for(i = 0; i < 10; i++)
    {
        scanf("%d", a + i);
    }

    min(a);
    max(a);

    for(i = 0; i < 10; i++)
    {
        printf("%d%c", *(a + i), (i == 9) ? '\n' : ' ');
    }
}

剛學完指標,不太清楚指標的好處,反而是為了用指標而卡了一段時間
感覺還不如不用指標 /狗頭

相關文章