C语言数组的重新排序问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:32:57
设有一数列,包含10个数,已按升序排好。现要求编一程序,它能够把从指
定位置的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用
指针方法。试编程。(例如:原数列为2,4,6,8,10,12,14,16,18,20,
若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20)。

#include <stdio.h>
#define MAX 20

void Func1(int * array,int begin,int count)
/* array 待转置数组,begin 开始位置,count 翻转个数*/
{
int i,j=begin+count-2;
int temp;
if(begin<0 || (begin+count)>=20)
{
printf("Error!\n");
return;
}
for(i=begin-1;i<=j;i++)
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
j--;
}
}

main()
{
int i,n;
int array[MAX];
int start,count;
/* 输入数组元素个数*/
printf("Input number of array:\n");
scanf("%d",&n);
if(n<1)
{
printf("Number must biger than 0!\n");
return -1;
}
printf("Input value of each element:\n");
for(i=0;i<n;i++)
scanf("%d",&array[i]);
printf("The array is:\n");
for(i=0;i<n;i++)
printf("%d ",array[i]);