//C程序设计第四版(谭浩强)
//章节:第六章 利用数组处理批量数据
//题号:6.5
//题目:将一个数组中的值按逆序存放。例如:原来顺序为8,6,5,4,1.要求改为1,4,5,6,8
#include <stdio.h>
int main()
{
int a[20]={1,0},i,n,temp;
printf("请输入数组元素的个数: ");
scanf("%d",&n);
printf("请输入数组元素(按空格隔开): \n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n/2;i++) {
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
printf("逆序存放后的数组: \n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
关键部分在于
for(i=0;i<n/2;i++) {
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
执行循环,循环的次数为元素总个数的一半(向上取整),将首尾两侧的元素依次进行交换,可以完成逆序存放的要求,无需再定义数组存放造成额外的开销。