使用C语言实现数组内容的交换

       前言

        今天我们来看看如何交换两个数组中的内容吧,这两个数组是一样大的哦

        题目描述

        今天杰克想要将两个数组中的内容进行交换,你可以帮杰克使用C语言的方式实现嘛。

        输入描述

        无

        输出描述

        两行,两个数组置换之后的结果

         题目分析

        我们如何将两个数组中的内容进行交换呢,在这里我们以前交换两个数的那种方式还可不可以使用呢。我们来看看:

        我们设置数组arr1和arr2,再设置一个数组tmp,tmp作为数组的中转站,第一步将arr1数组给tmp数组,第二步将arr2数组给arr1,第三步将tmp数组给arr2。

        如图:

        

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 4,5,6,7,8 };
	int tmp[] = { 0 };

	tmp = arr1;
	arr1 = arr2;
	arr2 = tmp;
	return 0;
}

        听起来是不是可以,如果你认为可以那就错啦,如果arr1和arr2都是一个具体值的话这当然没问题,但是它是一个数组,所以这种情况不能实现,主要有两个原因:

        1.在定义tmp数组的时候我们一定会将其初始化,但是在我们想利用tmp数组作为中转站的时候,中转站的元素也必须是5个元素啊,但是这里没有,我们初始化tmp数组之后只会有一个元素,所以它的空间不够。

        2.数组名是什么?它是一个地址啊,数组名的概念就是数组首元素的地址,我们需要交换的是两个数组中的元素,我们这样将地址赋予给一个地址是不行的,地址是一个常量值,我们需要的是地址背后的空间。

        虽然思路有点问题,但是我们的方式也不是全错的,让我们修改一下

        代码实现

        

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 4,5,6,7,8 };
	int i;
	int sz = sizeof(arr1) / sizeof arr1[0];//计算数组中元素个数
    //置换两个数组中的元素
	for (i = 0;i < sz;i++)
	{
		int tmp;
		tmp=arr1[i];
		arr1[i] = arr2[i];
		arr2[i] = tmp;
	}
    //打印数组
	for (i = 0;i < sz;i++)
	{
		printf("%d ", arr1[i]);
	}
	printf("\n");
	for (i = 0;i < sz;i++)
	{
		printf("%d ", arr2[i]);
	}
	printf("\n");
	return 0;
}

       运行结果

        我们使用一个循环完成,我们将数组中每一个元素进行交换,完成循环之后我们对arr1数组中元素和arr2数组中元素进行打印,之后看看是否已经完成置换。

        

        这是我们程序输出的结果,结果显示已经完成置换。

        今天就到这里啦,杰克得到了你们的帮助很开心呢,继续加油哦!有任何问题都可以评论区留言嘞!一起努力!!

相关推荐

  1. [C语言] 使用数组模拟实现malloc

    2024-04-09 00:04:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 00:04:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 00:04:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 00:04:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 00:04:03       18 阅读

热门阅读

  1. css外边距合并和BFC

    2024-04-09 00:04:03       12 阅读
  2. Leetcode 8. 字符串转换整数 (atoi)

    2024-04-09 00:04:03       12 阅读
  3. 蓝桥杯嵌入式之模块驱动

    2024-04-09 00:04:03       14 阅读
  4. 线程同步的四项原则

    2024-04-09 00:04:03       11 阅读
  5. 解决Redission的RList查询list数据过慢的问题

    2024-04-09 00:04:03       14 阅读
  6. 自动导入和注册在当前目录下的所有自定义指令

    2024-04-09 00:04:03       11 阅读
  7. meshgrid如何生成网格

    2024-04-09 00:04:03       10 阅读
  8. Python 描述符

    2024-04-09 00:04:03       13 阅读
  9. 常用启发式算法简介:从迷宫到机器学习

    2024-04-09 00:04:03       14 阅读
  10. SPMI 协议简介

    2024-04-09 00:04:03       13 阅读