逆序存放数组元素并输出 c语言
时间: 2025-03-26 11:28:16 浏览: 56
### C语言实现数组元素逆序存放并输出
为了实现数组元素的逆序存放并输出,在C语言中可以采用多种方法。下面提供了一种常见的方式,该方式通过定义特定功能的辅助函数来简化`main`函数内的逻辑。
#### 定义辅助函数
首先定义两个辅助函数:一个是用来逆转数组元素顺序的`reverseArray`;另一个是用来打印数组内容的`printArray`[^1]。
```c
#include <stdio.h>
// 函数声明
void reverseArray(int arr[], int size);
void printArray(int arr[], int size);
int main() {
// 定义并初始化一个整型一维数组
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr)/sizeof(arr[0]);
printf("Original array:\n");
printArray(arr, n);
// 调用函数将数组逆序存放
reverseArray(arr, n);
printf("\nReversed array:\n");
printArray(arr, n);
return 0;
}
// 反转数组元素顺序的函数
void reverseArray(int arr[], int size){
for (int i=0; i<size/2; ++i){
int temp = arr[i];
arr[i] = arr[size-1-i];
arr[size-1-i] = temp;
}
}
// 打印数组元素的函数
void printArray(int arr[], int size){
for (int i=0; i<size; ++i){
printf("%d ", arr[i]);
}
}
```
这段代码展示了如何创建和使用这两个辅助函数以达到目的。其中,`reverseArray`负责处理数组反转的工作,而`printArray`则用于展示最终的结果。
对于字符类型的字符串而言,也可以采取类似的思路来进行操作。这里给出一段专门针对字符串的操作实例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* left, char* right) {
while (left<right) {
char tmp = *left;
*left++ = *right;
*right-- = tmp;
}
}
int main(){
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 去除fgets读取到的换行符
int length = strlen(str)-1;
reverse(&str[0], &str[length]);
printf("Reversed String is %s\n", str);
return 0;
}
```
此版本适用于处理由用户输入的任意长度不超过99个字符(考虑到终止符)的字符串,并对其进行原地翻转[^2]。
阅读全文
相关推荐


















