设有一数列,包含10个数,已按升序排好。编写程序,能够把从指定位置开场的n个数按逆序重新排列并输出新的完整序列。〔例如:原数列为2,4,6,8,10,12,14,16,18,20,从第4个数开场的5个数按逆序重新排列,那么得2,4,6,16,14,12,10,8,18,20〕用c语言
时间: 2023-10-01 10:09:53 浏览: 98
.编写一个函数,将数组中n个数按反序存放。 实验步骤与要求: 在主函数中输入10个数,并输出排好序的数。 编写函数invert()将10个数按反序存放。
4星 · 用户满意度95%
以下是用C语言实现的程序:
```c
#include <stdio.h>
void reverse(int arr[], int start, int n);
int main()
{
int arr[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int n, start, end;
printf("请输入需要逆序的起始位置和个数:\n");
scanf("%d %d", &start, &n);
end = start + n - 1;
if (start < 1 || end > 10) {
printf("输入有误!\n");
return 0;
}
reverse(arr, start - 1, n);
printf("逆序后的完整序列为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void reverse(int arr[], int start, int n)
{
int end = start + n - 1;
int temp;
while (start < end) {
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
```
运行程序后,输入需要逆序的起始位置和个数,程序会输出逆序后的完整序列。如果输入的起始位置或者结束位置超出了数组范围,则程序会输出错误提示。
阅读全文