课本第八章-3 交换数字

12 篇文章 2 订阅

输入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' : ' ');
    }
}

刚学完指针,不太清楚指针的好处,反而是为了用指针而卡了一段时间
感觉还不如不用指针 /狗头

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值