函数完成数组的逆序输出(C语言)

函数完成数组的逆序输出

一、思路

1.实现print() 函数打印数组的每个元素:
使用for循环将数组中的元素打印出来。

2.实现reverse() 函数完成数组元素的逆置:
设置left为左下标,right为右下标,tmp为交换两个数内容的中间变量
先将下标为left的值赋值给tmp,再将下标为right的值赋值给下标为元素left,最后再将tmp的值赋值给下标为left的元素
再对left++,同时对right–,一直循环到left>right

二、源代码

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void print(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d", arr[i]);
	}
	printf("\n");
}
void reverse(int arr[], int sz)
{
	int tmp = 0;
	int left = 0;
	int right = sz - 1;
	while (left < right)
	{
		tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
	}
}
int main()
{
	int arr[5] = { 0 };
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("请输入要操作的数:>");
	for (i = 0; i < sz; i++)
	{
		scanf("%d", &arr[i]);
	}
	print(arr, sz);
	reverse(arr, sz);
	print(arr, sz);
	return 0;

}

运行截图:

在这里插入图片描述

总结

这是一个基础题,代码看着有点长,其实原理很简单,如果这篇文章有哪里不正确的地方,请私信或者评论区向作者指出哦。
若本篇内容对你有帮助的话,请多多支持作者,作者目前是一个C语言萌新,欢迎大家一起来交流!!!
谢谢大家!
在这里插入图片描述

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现: ```c #include <stdio.h> int main() { int arr[] = {1, 2, 3, 4, 5}; int len = sizeof(arr) / sizeof(arr[0]); // 数组长度 int temp, i, j; // 输出原始数组 printf("原始数组:"); for (i = 0; i < len; i++) { printf("%d ", arr[i]); } // 数组逆序 for (i = 0, j = len - 1; i < j; i++, j--) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } // 输出逆序后的数组 printf("\n逆序后的数组:"); for (i = 0; i < len; i++) { printf("%d ", arr[i]); } return 0; } ``` 其中,将输入的数组逆序的代码是: ```c for (i = 0, j = len - 1; i < j; i++, j--) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } ``` 这里使用了两个指针,分别指向数组的头部和尾部,通过交换它们的值来实现数组的逆序。 ### 回答2: 要用C语言编写一个将数组逆序重新存放的程序,可以通过以下步骤来实现: 1. 声明一个整型数组,并初始化数组元素。 2. 使用两个指针,一个指向数组的起始位置,另一个指向数组的末尾位置。 3. 利用一个循环,交换指针指向的元素,并将指针往中间移动,直到两个指针相遇。 4. 循环结束后,数组中的元素就已经被逆序重新存放。 以下是一个示例代码: ```c #include <stdio.h> void reverseArray(int arr[], int size) { int start = 0; int end = size - 1; while (start < end) { // 交换指针指向的元素 int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // 移动指针 start++; end--; } } int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); printf("原数组:"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } reverseArray(arr, size); printf("\n逆序存放后的数组:"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } return 0; } ``` 运行这段代码,输出将会是: 原数组:1 2 3 4 5 逆序存放后的数组:5 4 3 2 1 这样,我们就成功使用C语言编写了一个将数组逆序重新存放的程序。 ### 回答3: 要用C语言写一个数组逆序重新存放的程序,可以按照以下步骤进行: 1. 定义并初始化一个整型数组,例如int array[] = {1, 2, 3, 4, 5, 6},表示需要逆序的数组元素。 2. 确定数组的长度,可以使用sizeof()函数,例如int length = sizeof(array) / sizeof(array[0])。这样可以获取数组的元素个数。 3. 定义一个临时变量temp,用于交换数组元素。 4. 使用两个指针,分别指向数组的头部和尾部,即int *start = array和int *end = array + length - 1。 5. 使用while循环,当start指针小于end指针时,执行以下操作: - 交换start指针和end指针指向的元素,即temp = *start,*start = *end,*end = temp。 - start指针向后移动一位,即start++。 - end指针向前移动一位,即end--。 6. 循环结束后,原数组的元素顺序已经逆序重新存放。 下面是完整的代码示例: ```c #include <stdio.h> void reverseArray(int array[], int length) { int *start = array; int *end = array + length - 1; int temp; while (start < end) { temp = *start; *start = *end; *end = temp; start++; end--; } } int main() { int array[] = {1, 2, 3, 4, 5, 6}; int length = sizeof(array) / sizeof(array[0]); reverseArray(array, length); printf("逆序重新存放后的数组:"); for (int i = 0; i < length; i++) { printf("%d ", array[i]); } return 0; } ``` 以上代码中,定义了一个函数reverseArray()来实现逆序重新存放数组的功能。在主函数main()中,首先定义并初始化一个数组,然后获取数组的长度,接着调用reverseArray()函数数组进行逆序操作,最后通过循环打印逆序重新存放后的数组输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值