关于数组排序
关于数组排序的问题,实在是想不出来该怎么解决了,我也知道很简单的,大家发表下意见。
我的要求是,给定一个数组,然后输入一个变量n控制数组中的前n个元素,让它们逆序排列输出;
我写的如下:
#include<stdio.h>
void main()
{
int t,i,n,a[5]={1,2,3,4,5};
scanf("%d",n);
for(i=0;i<=n;i++)
{t=a[n-i];
a[i]=t;
printf("%d",a[i]);
}
printf("\n");
}
输入3,它输出的结果是:4,3,3,4,到了(n+1)/2的地方不能还原为原来的值了。
如果把for语句里的那个条件换成i<(n+1)/2时,只能输出一半的结果,即输入3,输出的是4,3,后面的2,1不知道该用什么方法输出。
我主要是想用代换的方法解决这个问题,谢谢。
[ 本帖最后由 小赵q1 于 2011-10-2 02:36 编辑 ]