首页 > 其他分享 >C语言逆序操作数组和引用传递参数

C语言逆序操作数组和引用传递参数

时间:2025-01-20 15:32:17浏览次数:1  
标签:int px py C语言 传递 数组 逆序




//
//  main.c
//  Test_C
//
//  Created by steve xiaohu zhao on 2025/1/20.
//

#include <stdio.h>

// C 语言指针传递参数(引用传递)
void swap(int *px, int *py) {
    int t = *px;
    *px = *py;
    *py = t;
}

void test(int n) {
    int x = 1;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= i; j++)
            for (int k = 1; k <= j; k++)
                x++;
}

// 1. 将数组元素逆序操作后,存放在原数组中
void reverseArray(void) {
    // 1. 声明一个数组
    int nums[] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};

    // 2. 通过循环逆序输出
    // 2.1 获取数组长度
    int len = sizeof(nums) / sizeof(nums[0]);

    printf("逆序操作前的数组:\n");
    for (int i = 0; i < len; i++) {
        printf("%d ", nums[i]);
    }
    printf("\n");

    // 2.2 循环将数组逆序操作
    for (int i = 0; i < len / 2; i++) {
        int temp = nums[i];
        nums[i] = nums[len - i - 1];
        nums[len - i - 1] = temp;
    }

    // 3. 循环输出原数组内容
    printf("逆序操作后的数组:\n");
    for (int i = 0; i < len; i++) {
        printf("%d ", nums[i]);
    }
    printf("\n");
}

int main(int argc, const char *argv[]) {
    // insert code here...

    //    // 1. C 语言传递指针类型(引用传递参数)
    //    int a = 10, b = 20;
    //    printf("交换前: a = %d, b = %d", a, b);
    //    swap(&a, &b);
    //    printf("交换后: a = %d, b = %d", a, b);

    // 2. 数组逆序操作
    reverseArray();

    return 0;
}


标签:int,px,py,C语言,传递,数组,逆序
From: https://www.cnblogs.com/zxhoo/p/18681516

相关文章

  • leetcode349-两个数组的交集
    leetcode349实现利用哈希set进行去重,然后循环nums2,如果nums2中的元素是在去重后的num1中出现过的,就存放在set2中,因为最后要返回的是不重复的数组,所以先放在set2,让其进行去重,最后把set2转为数组方法1varintersection=function(nums1,nums2){constset1=[........
  • PTA 之 数组元素循环右移问题
    一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0​A1​⋯AN−1​)变换为(AN−M​⋯AN−1​A0​A1​⋯AN−M−1​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:......
  • C语言实现顺序存储线性表
    ////Createdbystevexiaohuzhaoon2025/1/20.///****线性表的顺序存储结构实现*特点:逻辑上相邻的元素,物理上也相邻**/#include<stdio.h>#include<stdlib.h>#defineMAXSIZE100//定义线性表的最大长度//1.定义图书结构体Booktypedefstr......
  • 写一个方法,传入数字x,从一个一维数组里找到两个数字符合“n1 + n2 = x”
    在前端开发中,你可以使用JavaScript来编写这个方法。下面是一个简单的实现,它接受一个数字x和一个一维数组arr作为参数,并尝试在数组中找到两个数字,使它们的和等于x。如果找到了这样的两个数字,它会返回一个包含这两个数字的数组;如果没有找到,它会返回null。functionfindTwoNumbersTh......
  • 树状数组板子(单点增加+范围查询)
    用于解决范围数字和与单点增加问题(复杂度O(logn))build方法(构造树状数组)voidbuild(){ for(inti=1,v;i<=n;i++){ cin>>v; add(i,v); }}lowbit方法(获取一个二进制数最低位的1的状态)intlowbit(intx){ returnx&(-x);}add方法(单点增加)voidadd(inti,int......
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
    二、一维数组应用技巧2:打标记实战训练1—开关灯问题描述:有M个从1到M依次编号的人参加一项游戏。将K盏从1到K依次编号的灯(K和M均为正整数,M≤K≤5000)进行一系列的熄灭与打开的操作,游戏开始时均处于亮灯的状态;第一个人(1号)将灯全部熄灭;第二个人(2号)将编号为2的倍数的灯做......
  • 算法随笔_12:最短无序子数组
    上一篇: 算法随笔_11:字符串的排列-CSDN博客题目描述如下:给你一个整数数组nums,你需要找出一个连续子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的最短子数组,并输出它的长度。示例1:输入:nums=[2,6,4,8,10,9,15]输出:5解释:......
  • 代码随想录:将有序数组转化为二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 指针应用-查找数组元素(PTA)C语言
    编写一个名为findX的函数,该函数的参数p指向一个int数组,数组的容量n由参数2指定。在该数组中,查找数据x所在的位置。如果数据x有出现多次,则返回其最后一次出现的位置对应的下标。如果没有找到,则固定返回-2。intfindX(int*p,intn,intx);函数接口定义:intfindX(int*p,intn......
  • C语言:分支语句详解
           所谓分支,就是在不同情况下输出不同结果。下面我们来学习分支语句:1.if语句1.1if    if语句的书写方法如下:if(表达式)语句       如果表达式值为真,那么我们就执行语句,若表达式值不为真(为假),就不执行。在C语言中,我们说非0为真,0为假。我......