逆序重放的问题
将一个数组中的值按逆序重新存放。eg:input 1,2,3,4,5,6 output:6,5,4,3,2,1我编的这个为什么不能达到我要的结果呢?
#include<stdio.h>
{
main()
int a[6],i;
for(i=0;i<=5;i++)
scanf("%d",&a[i]);
for(i=5;i>=0;i--)
printf("%3d",&a[i]);
}
[此贴子已经被作者于2006-12-5 10:51:27编辑过]
第二个FOR语句的算法是怎么得出来的啊?
我输入1,2,3,4,5,6
结果是:—22—20—18—16—14—12—(中间那些横线也是输出的)
#include<stdio.h>
#include <fstream>
using namespace std;
main()
{
int a[6],i,j;
int temp;
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=5,j=0;i>(6/2-1);i--,j++)
{ temp=a[i];
a[i]=a[j];
a[j]=temp;
//printf("%3d",a[j]);
}
for(i=0;i<6;i++)
printf("%3d\n",a[i]);
}
这个算法妙,利用对称交换。
但是假如是输入的个数是单数的话,就要改一下了。谢了。