如何用c写出数组逆序重新存放的程序
时间: 2023-08-31 22:43:17 浏览: 88
### 回答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()函数对数组进行逆序操作,最后通过循环打印逆序重新存放后的数组输出结果。
阅读全文