zoukankan      html  css  js  c++  java
  • C语言经典算法100例-067-练习使用指针2

    题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

    现提供正确答案:

    //10个数,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int number[10];
        input(number);
        output(number);
        max_min(number);
        output(number);
        return 0;
    }
    
    //输入数组
    input(number)       //为什么可以这样定义函数 经实验可以这样定义 不过还是建议用常规方式定义吧
    int number[10];
    {
        int i;
        for(i=0;i<10;i++)
            scanf("%d",&number[i]);
    }
    
    //找出最大最小值并交换
    void max_min(int array[])
    {
        int *max,*min,k,l;
        int *p,*arr_end;
        arr_end=array+10;   //指向数组最后一个元素的后一个位置array[10]
    
        //找出最大最小值所在位置
        max=min=array;
        for(p=array+1;p<arr_end;p++)
            if(*p>*max) max=p;
            else if(*p<*min) min=p;
    
        //交换
        k=*max;
        l=*min;
        *max=*array;
        *array=k;
        *min=*(arr_end-1);
        *(arr_end-1)=l;
    }
    
    //输出数组
    void output (int array[])
    {
        int i;
        for(i=0;i<10;i++)
            printf("%4d",array[i]);
        printf("
    ");
    }
    


  • 相关阅读:
    数组初始化 和 vector初始化
    剑指offer42 左旋转字符串
    k sum(lintcode)
    背包问题2 (lintcode)
    92.背包问题(lintcode)
    72. Edit Distance
    79 最长公共子串 (lintcode)
    77 最长公共子序列 (lintcode)
    132. Palindrome Partitioning II
    Mysql经常使用函数汇总
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959480.html
Copyright © 2011-2022 走看看