编写c程序,输入一维数组的10个元素,将从第m个元素开始的所有元素逆置存放,然后输出逆置后的10个数。
时间: 2024-12-19 09:23:53 浏览: 4
编写C程序来完成这个任务,可以分为以下几个步骤:
1. 定义一个一维数组并获取用户输入的元素和起始位置m。
2. 检查输入的m是否有效,确保它小于数组长度。
3. 使用两个指针,一个指向起始位置m,另一个指向数组结尾。
4. 交换这两个指针所指向的元素,然后同时向中间移动,直到它们相遇。
5. 输出逆置后的整个数组。
下面是一个简单的C程序示例,使用循环实现元素的逆置:
```c
#include <stdio.h>
// Function to reverse elements starting from index m
void reverse_array(int arr[], int n, int m) {
if (m >= n || m < 0)
printf("Invalid index.\n");
int start = m;
int end = n - 1;
while (start < end) {
// Swap elements
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// Move pointers towards each other
start++;
end--;
}
}
int main() {
int arr[10], m;
printf("Enter 10 numbers:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
printf("Enter the starting position (m): ");
scanf("%d", &m);
// Call the function to reverse the array
reverse_array(arr, sizeof(arr) / sizeof(arr[0]), m - 1); // Subtract 1 because array indexing starts from 0
printf("Reversed array with element %d and beyond:\n", m);
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文