zoukankan      html  css  js  c++  java
  • C语言 函数实现一维数组的元素交换顺序

    背景

    最近在做算法作业,要用C去实现,虽然内心是崩溃食xiang的,但还是抑制住了退课的冲动……这里记录一下一个小情景的实现。
    要用C语言定义一个swap函数实现一维数组的元素交换顺序。因为涉及到数组、指针、函数传参这三个概念,所以保存一下警示自己。

    主函数代码

    #include<stdio.h>
    #include <stdlib.h>
    #define N 10
    int main(void)
    {
        int i=0,List[N];
        for(;i<N;i++)
            List[i] = i;
        /* swap函数 */
         for(i=0;i<N;i++)
            printf("List[%d]=%d
    ",i,List[i]);
        return 0;
    }
    

    函数代码1

    void swap1(int *X,int i,int j)
    {
        int temp = X[i];
        X[i] = X[j];
        X[j] = temp;
    }
    

    这个swap1函数,X指针代表数组初始地址,调用的时候需要用数组名List来填入,后面i、j分别代表等待交换元素的下标。调用main的时候使用swap1(List,4,9);来替代,执行效果:

    函数代码2

    void swap2(int *X, int *Y)
    {
        int temp = *X;
        *X = *Y;
        *Y = temp;
    }
    

    这个swap2函数,X指针代表数组第一个元素List[i]的地址,Y指针代表数组第二个元素List[j]的地址,调用main的时候使用直接取地址符:swap2(&List[4],&List[9]);,执行效果一样不再展示。

    同时使用

    swap1(List,0,5);
    swap2(&List[2],&List[9]);
    

  • 相关阅读:
    字典dict
    数组处理
    switch语句
    java基础复习2
    位运算
    内存中占用的字节
    java基础复习
    常用快捷键
    利用Typora设计博客的方式
    java数据结构-排序算法-堆算法
  • 原文地址:https://www.cnblogs.com/Higgerw/p/13797689.html
Copyright © 2011-2022 走看看